【发布时间】:2012-05-18 13:43:29
【问题描述】:
谁能解释 realloc 中的第二个参数到底是什么,因为我找不到测试它的方法。
假设我们有这样的东西
int *p = malloc(sizeof(int)); //we have just enough space to store single int value
现在如果我想在 p 中存储 2 个 int 值,我是否需要将作为第二个参数 2 * sizeof(int) 块的新大小或 sizeof(int) 发送到 realloc,因为它需要为 int 大小扩展内存
如果我应该在这种情况下将新块的总值发送到 realloc 2 * sizeof(int),如果我只发送它sizeof(int),它会做什么,只返回原始指针并且在内存中什么都不做或其他什么?
【问题讨论】:
-
这取决于实现。它可能什么都不做并返回旧指针,也可能分配新内存并复制。