新手求指导,好像又是指针的问题
源代码:
#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里面从上到下列出的对应从里层到外层的函数调用历史。双击某一行可将光标定位到此次调用的源代码或汇编指令处。
判断是否越界访问,可以在数组的最后一个元素之后对应的地址处设置数据读写断点。如果该地址对应其它变量干扰判断,可将数组多声明一个元素,并设置数据读写断点在该多出元素对应的地址上。