对 NULL 值(或未定义)指针进行 Realloc

2023-12-28

我正在读关于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(使用前将#替换为@)

对 NULL 值(或未定义)指针进行 Realloc 的相关文章

随机推荐