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

时间:2016-03-06 12:57:03

标签: c pointers

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

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

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

if(ptr1 == NULL)
    do something

但有没有办法写一些类似但没有初始化ptr

的东西

2 个答案:

答案 0 :(得分:16)

未初始化的变量可以包含任何值。因此,无法确定变量是否未初始化,因为它看起来就像已经初始化的变量。确保变量初始化的唯一方法是显式写入一个值(例如,NULL),如您在问题中已经提到的那样。

答案 1 :(得分:1)

  

我有一个包含指针数组的struct [...]是否可以编写类似但没有ptr初始化的方法?

没有

相关:https://stackoverflow.com/a/19626617/694576