任何人都可以总结出正确的用法是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. }
Run Code Online (Sandbox Code Playgroud)
假设在线realloc()
失败3
.我做就行了正确的事情5
由free()
荷兰国际集团ptr
?
Gia*_*ian 17
来自http://www.c-faq.com/malloc/realloc.html
如果realloc根本找不到足够的空间,它将返回一个空指针,并保留分配的前一个区域.
因此,您确实需要释放先前分配的内存.