【发布时间】:2016-11-07 20:42:15
【问题描述】:
我在一些网站上看到了一些与 realloc() 相关的代码,如下所示。
int *p = (int *)malloc(sizeof(int) * 10);
p = (int *)realloc(p, 100);
但正如标准所说,如果 realloc 失败,原始块保持不变并返回 NULL。
所以如果 realloc 失败,从上面的例子中,我们将失去释放 p 的能力。谁能告诉我将 realloc() 返回的地址分配给同一个指针是一种好的编码习惯吗?
【问题讨论】:
-
Unrealed,只要您关注的是“良好的编码习惯”,也许可以阅读:Do I cast the result of
malloc?。 -
谁能告诉我将 realloc() 返回的地址分配给同一个指针是一种好的编码习惯吗? 就在 所以如果 realloc 失败,从上面的例子中,我们将失去释放 p 的能力。?你怎么看?
-
谁投票结束,这“主要基于意见”是如何产生的? OP 询问的做法总是一个错误。
-
@AndrewHenle :我认为直接分配是不对的。但我想确认一下。
-
@WhozCraig:感谢您的链接。
标签: c pointers memory-management return realloc