考虑如下例子
int *a = new int [10];
int *b = new int [20];
delete [] a;
a = b;
delete [] a;
第一次 delete a 的时侯系统自然知道要回收 10 个 int 大小的内存
但第二次 delete a 的时侯系统怎么知道要回收 20 个 int 大小的内存?
如果不是用 new 和 delete 而是用 malloc 和 free,会不会又不一样?
M**u 发帖数: 10158
2
heap维护的
一般在内存之前或者之后
【在 c*******h 的大作中提到】 : 考虑如下例子 : int *a = new int [10]; : int *b = new int [20]; : delete [] a; : a = b; : delete [] a; : 第一次 delete a 的时侯系统自然知道要回收 10 个 int 大小的内存 : 但第二次 delete a 的时侯系统怎么知道要回收 20 个 int 大小的内存? : 如果不是用 new 和 delete 而是用 malloc 和 free,会不会又不一样?