vc里面的访问冲突
代码如下: M=771,N=600; int i,j; double *data=new double(M*N); for(i=0;i<M;i++) for(j=0;j<N;j++) { data[i*M+j]=pow(-1.0,(i+j))*50; } 当运行到i=600,j=240时,在data[i*M+j]=pow(-1.0,(i+j))*50;这一句发生了访问冲突。 请问这是为何?
追问:我这个就是访问一个771*600的二维数组啊
我还是没想明白
代码如下: M=771,N=600; int i,j; double *data=new double(M*N); for(i=0;i<M;i++) for(j=0;j<N;j++) { data[i*M+j]=pow(-1.0,(i+j))*50; } 当运行到i=600,j=240时,在data[i*M+j]=pow(-1.0,(i+j))*50;这一句发生了访问冲突。 请问这是为何?
追问:我这个就是访问一个771*600的二维数组啊
我还是没想明白
答案:double *data=new double(M*N);
double *data=new double(771*600);
i=600,j=240时,在data[i*M+j],data[600*771+240],
600*771+240>771*600
分配的内存不够了啊!
上一个:下面这个程序为什么在vc运行不了???
下一个:vc++ 加载图片问题