关于数组动态分配的疑问???# Programming - 葵花宝典
o*r
1 楼
问题出在释放数组空间的时候
有一个class A;
申请内存
A *pA = new A[10];
释放时
delete[] pA;
debug version就会报错
release version没有报错
改成指针
A *ppA = new A*[10];
for (int i = 0; i<10; i++) ppA[i] = new A;
释放时
for (i = 0; i<10; i++) delete ppA[i];
delete[] ppA;
就没错
有谁知道两者区别?跟数组分配有关吗?
用后面那种方式写的时候比较罗嗦,用前面这种方式写的在程序负责以后在release version
下也报错了,改起来地方太多了
有一个class A;
申请内存
A *pA = new A[10];
释放时
delete[] pA;
debug version就会报错
release version没有报错
改成指针
A *ppA = new A*[10];
for (int i = 0; i<10; i++) ppA[i] = new A;
释放时
for (i = 0; i<10; i++) delete ppA[i];
delete[] ppA;
就没错
有谁知道两者区别?跟数组分配有关吗?
用后面那种方式写的时候比较罗嗦,用前面这种方式写的在程序负责以后在release version
下也报错了,改起来地方太多了