gpt4 book ai didi

c - 在代码运行时,初始化指针是否可能为 NULL?

转载 作者:太空宇宙 更新时间:2023-11-03 23:25:52 25 4
gpt4 key购买 nike

作为稳健性和最佳实践,如果将访问指向任何数据类型的指针,我们应该在访问之前保护它不为 NULL...

例如:

    int Var;
int *ptrToVar = &Var;

int main(void)
{
if (ptrToVar != NULL)
{
(*ptrToVar) = 6;
}
else
{
//do nothing
}
}

我的问题是:

ptrToVar 是否有可能在代码运行时为 NULL

如果是!那么什么可以使指针 ptrToVar 在运行时成为 NULL 呢?!

最佳答案

全局变量存储在数据段中。如果全局变量未初始化,它们将被初始化为 0 。所以它只是初始化为 0。你有一个指针 ptrToVar 指向这个变量。因此,除非您的代码中存在一些未分配的内存访问或 UB,否则此指针永远不会为 NULL。

您可以尝试打印指针指向的地址,它不能为 NULL。(在定义的行为中)。

如果我们只考虑您发布的代码,指针 ptrToVar 不为 NULL。

关于c - 在代码运行时,初始化指针是否可能为 NULL?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27561866/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com