有人能总结一下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
行失败。我在网上做正确的事情吗? 最佳答案
从http://www.c-faq.com/malloc/realloc.html
如果realloc根本找不到足够的空间,它将返回一个空指针,并保留以前分配的区域。
因此,您确实需要释放以前分配的内存。
关于c - 当realloc()失败并返回NULL时,它的正确用法是什么?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3331221/