有人可以解释一下 realloc 中的第二个参数到底是什么,因为我找不到测试它的方法。
所以假设我们有这样的事情
int *p = malloc(sizeof(int)); //we have just enough space to store single int value
Run Code Online (Sandbox Code Playgroud)
现在,如果我想在 p 中存储 2 个 int 值,我是否需要发送到 realloc 作为2 * sizeof(int)块的第二个参数 新大小,或者sizeof(int)因为它需要为 int 大小扩展内存
如果我应该在这种情况下2 * sizeof(int)将新块的总价值发送到 realloc ,如果我只发送它sizeof(int),它会做什么,只返回原始指针并且在内存中什么都不做或其他什么?
第二个参数是以字节为单位的内存块的新大小(总新大小)。如果你想要 2 个整数的空间,你会使用2 * sizeof(int).
只是返回原始指针并且在内存中什么都不做或其他什么?
规格不保证这一点。许多实现只会原封不动地返回原始指针,但它们也可以轻松移动它。您不会获得足够大的新内存分配 2 个整数,但是,只有足够大的内存位置中的原始数据值sizeof(int).
| 归档时间: |
|
| 查看次数: |
366 次 |
| 最近记录: |