我正在读关于realloc http://en.cppreference.com/w/c/memory/realloc并对那里提到的一点感到困惑。考虑下面的代码:
#include <stdio.h>
#include <stdlib.h>
int main () {
int* ptr = NULL;
ptr = realloc(ptr, 10*sizeof(int));
return 0;
}
分配内存有什么危险吗realloc
使用最初的NULL
-valued ptr
?如果代替:
int* ptr = NULL;
我有这个:
int* ptr; // no value given to ptr
打电话会有问题吗realloc
using ptr
?
使用 realloc 分配内存是否有任何危险
最初为 NULL 值的 ptr
None
7.22.3.5
如果 ptr 是空指针,则 realloc 函数的行为类似于 malloc
指定大小的函数。
对于第二部分:
int* ptr; // no value given to ptr
使用 ptr 调用 realloc 会有问题吗?
如果您使用未初始化的指针,那么这确实是一个非常严重的问题,因为您无法预测它们的值是什么。功能realloc
仅适用于NULL
或从获得的值malloc
/ realloc
.
否则,如果 ptr 与之前由 a 返回的指针不匹配
内存管理函数[...]行为未定义
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)