gpt4 book ai didi

c - realloc() 失败并返回 NULL 时的正确用法是什么?

转载 作者:IT王子 更新时间:2023-10-28 23:30:24 27 4
gpt4 key购买 nike

谁能总结一下realloc()的正确用法是什么?

realloc() 失败时怎么办?

从我目前看到的情况来看,如果 realloc() 失败,你必须 free() 旧指针。这是真的吗?

这是一个例子:

   1.  char *ptr = malloc(sizeof(*ptr) * 50);
2. ...
3. char *new_ptr = realloc(ptr, sizeof(*new_ptr) * 60);
4. if (!new_ptr) {
5. free(ptr);
6. return NULL;
7. }

假设 realloc() 在第 3 行失败。我通过 free()ing ptr5 行做对了吗?

最佳答案

来自 http://www.c-faq.com/malloc/realloc.html

If realloc cannot find enough space at all, it returns a null pointer, and leaves the previous region allocated.

因此,您确实需要释放之前分配的内存。

关于c - realloc() 失败并返回 NULL 时的正确用法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3331221/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com