# include<iostream.h>
void main()
{
//int num,i=0,j=0;
int num;
int i=0;
cout<<"enter the number of array"<<endl;
cin>>num;
int *array=new int[num];
cout<<"enter the element of array"<<endl;
while(i++<num){
cin>>*(array+i);
cout<<i<<" "<<*(array+i)<<endl;
}
delete[] array;
}
程序运行时出现了 DAMAGE:after Normal block (#49)at 0x00440030 的错误, 上网一查才知道是发现内存申请得太小所致
原来问题出现在这里while(i++<num) , i++是先执行操作再加1,当i=num-1时,i++<num时成立的,之后i=num,
cin>>*(array+i);
cout<<i<<" "<<*(array+i)<<endl;
这两句中(array+num)是不存在的,
解决方法1: int *array=new int[num+1];
解决方法2: while(i<num){
cin>>*(array+i);
cout<<i<<" "<<*(array+i)<<endl;
i++;
}