函数可能会将内存块移动到新位置,在这种情况下会返回新位置。
例如我有一个指向数组的指针:
int *arr; // somewhere next it initialized, filled with elements and etc
某处我需要:
void* location = realloc(arr, NEW_SIZE);
旧的内存块位置会发生什么?
如果 realloc 返回不是数学运算的指针到 arr,我应该使用下一个代码吗?:
delete arr;
arr = (int*)location;
最佳答案
realloc
函数继承自优秀的旧 C。它不运行析构函数或执行任何其他 C++ 魔法。它也只能应用于使用 malloc
(和 friend )分配的 block ——它不能用于使用“new”分配的 block 。
关于c++ - 如果将数据移动到不同的 block ,c++ realloc 函数是否对旧数据 block 应用删除操作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10648870/