C++中realloc
时间: 2023-11-03 22:44:35 浏览: 118
在C++中,`realloc` 函数并不是C++标准库中的函数,而是C标准库中的函数。它用于重新分配已经分配的内存块的大小。
`realloc` 函数的原型如下:
```cpp
void* realloc(void* ptr, size_t size);
```
其中,`ptr` 是指向已分配内存块的指针,`size` 是需要重新分配的大小。`realloc` 函数会尝试将原来分配的内存块大小修改为新的大小,并返回指向重新分配后内存块的指针。
需要注意的是,`realloc` 函数可能会将原来的内存块移动到新的位置,所以在使用 `realloc` 函数后,应该使用返回的指针更新原来的指针。
下面是一个示例,演示如何使用 `realloc` 函数:
```cpp
int* dynamicArray = new int[5];
// 使用 dynamicArray 进行操作
// 重新分配内存块大小为10
int* newDynamicArray = static_cast<int*>(realloc(dynamicArray, 10 * sizeof(int)));
if (newDynamicArray != nullptr) {
dynamicArray = newDynamicArray;
// 使用 dynamicArray 进行操作
}
```
在上面的示例中,首先使用 `new` 运算符动态分配了一个包含 5 个整型元素的数组。然后,使用 `realloc` 函数将其重新分配为一个包含 10 个整型元素的数组。如果重新分配成功,则更新原来的指针 `dynamicArray`。
需要注意的是,`realloc` 函数的使用需要谨慎,特别是在涉及到指针的情况下,因为它可能会引起内存泄漏或者悬空指针的问题。在C++中,建议使用 `new` 和 `delete` 运算符,或者更好地使用智能指针和容器类来管理内存。
希望这个解答对你有帮助!如果还有其他问题,请随时提问。
阅读全文
相关推荐


















