首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

新手求指导,好像又是指针的有关问题

2013-03-27 
新手求指导,好像又是指针的问题源代码:#includeiostreamint main(){using namespace stdint arr[12]ch

新手求指导,好像又是指针的问题
源代码:

#include<iostream>

int main()
{
using namespace std;
int arr[12];
char* arra[12]=
{"一","二","三","四","五","六","七","八","九","十","十一","十二"};
int sum=0;
for(int i=0;i<12;i++)
{
cout<<"请输入 "<<arra[i]<<" 月份的销售量:";
cin>>arr[i];
sum=sum+arr[i];
}
cout<<"本年度总销售量为:"<<sum<<endl;
for(int i=0;i<12;i++)
cout<<arra[i]<<" 月份的销售量为: "
<<arr[i]<<endl;
delete []arra;
return 0;
}

显示警告:
 warning C4154: 删除数组表达式;转换到提供的指针

警告指向删除指针的那一行。

调试时弹出的报错框:
新手求指导,好像又是指针的有关问题

在网上查了MSDN还是不太清楚,求高手帮帮我。 delete
[解决办法]
这个arra不是new 或 malloc出来的。不要delete
见:
char* arra[12]=
{"一","二","三","四","五","六","七","八","九","十","十一","十二"};

delete []arra;

[解决办法]


#include<iostream>
using namespace std;

int main(void)
{

int arr[12];
char* arra[12]=
{"一","二","三","四","五","六","七","八","九","十","十一","十二"};
int sum=0;
for(int i=0;i<12;i++)
{
cout<<"请输入 "<<arra[i]<<" 月份的销售量:";
cin>>arr[i];
sum=sum+arr[i];
}
cout<<"本年度总销售量为:"<<sum<<endl;
for(int i=0;i<12;i++)
cout<<arra[i]<<" 月份的销售量为: "
<<arr[i]<<endl;

return 0;
}

[解决办法]
崩溃的时候在弹出的对话框按相应按钮进入调试,按Alt+7键查看Call Stack里面从上到下列出的对应从里层到外层的函数调用历史。双击某一行可将光标定位到此次调用的源代码或汇编指令处。

判断是否越界访问,可以在数组的最后一个元素之后对应的地址处设置数据读写断点。如果该地址对应其它变量干扰判断,可将数组多声明一个元素,并设置数据读写断点在该多出元素对应的地址上。

热点排行