c - 检查指针是否已初始化的最佳方法

标签 c pointers

有没有办法检查指针是否已初始化?我有一个包含指针数组的结构

typedef struct foo
{
    int* ptr1;
    int* ptr2;
    int* ptr2;
    ...
    int* ptr100;
}

然后我的代码将地址分配给那些指针(内部循环)。但是在分配地址之前我想检查指针是否已经包含地址。我知道我可以使用 NULL 初始化每个指针,然后使用以下命令检查:

if(ptr1 == NULL)
    do something

但是有没有办法写一些类似的东西但是没有初始化ptr

最佳答案

未初始化的变量可以包含任何值。因此,不可能查明一个变量是否未初始化,因为它看起来就像一个已经初始化的变量。确保变量已初始化的唯一方法是明确地向其写入一个值(例如,NULL),正如您在问题中已经指出的那样。

关于c - 检查指针是否已初始化的最佳方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35827086/

相关文章:

c - Apple Accelerate Framework 库的开源等效项有哪些?

c++ - *b= *b+1 和 *b++ 之间的区别

c++ - C++中,为什么指针转换时地址变了?

c - 重新分配未完成时如何发现问题

c - 后缀 "_t"在 C 中代表什么?

objective-c - 如何将 HIDAPI 库添加到现有的 Mac 项目

从 C 连接到 Ingres 和 Oracle

将 char * 转换为 char * const *

c - 在函数中释放 malloc 结构

c - 在 C 中以独立于机器的方式引用堆地址