gpt4 book ai didi

c - 由于某些原因,指针地址为 NULL

转载 作者:太空宇宙 更新时间:2023-11-04 01:17:57 24 4
gpt4 key购买 nike

这是一个显示指针地址的简单程序:

#include <stdio.h>

int main(void)
{
int *a;
int *b;

printf ("address of a : %p, the address of b : %p\n", a, b);
return (0);
}

所以输出是这样的:

address of a : 0x7fff537b1ad8, the address of b : 0x0

我的问题是:为什么变量 b 有一个无效的地址内存而变量 a 没有

最佳答案

两个指针都指向无效内存。仅仅因为指针指向看似有效的内存位置,并不意味着它在您的程序上下文中有效。

具体来说,a 指向的内存位置,并没有分配给你的程序,所以从你的应用程序的角度来看,它是无效内存。任何读取或写入的尝试都会引发未定义的行为。

换句话说,绝对不能保证 b 会持有一个 NULL 值,它也可能有其他一些看似正确但无效的内存地址。它们无效,无论它们指向的内存位置如何。

关于c - 由于某些原因,指针地址为 NULL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52651943/

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