NULL指针不段落报错是什么原因
上玩viod指针和NULL指针的课程之后敲的代码如下:#include<stdio.h>
int main(){
int *p;
int *p1=NULL;
printf("p=%d\n",p);
printf("p1=%d",p1);
return 0;
}
运行结果为: p=0,p1=0
为什么我的NULL指针不会报错,直接输出为0呢?
大佬求解
NULL就是0 wp231957 发表于 2021-2-10 20:39
NULL就是0
上了小甲鱼的课,他那显示Segmentation fault,没显示=0。这又是什么原因
h5681901 发表于 2021-2-10 20:41
上了小甲鱼的课,他那显示Segmentation fault,没显示=0。这又是什么原因
他应该是对p1 解引用*
#include<stdio.h>
int main(){
int *p;
int *p1=NULL;
printf("p=%d\n",p);
printf("p1=%d",*p1);//对void * 类型进行 * 就会报错
return 0;
} 在stdio.h里有宏定义
#define NULL 0
即NULL = 0 李京 发表于 2021-2-10 21:17
他应该是对p1 解引用*
我的dvec++解引用运行的话就显示上一条,p1啥也不显示 h5681901 发表于 2021-2-10 20:41
上了小甲鱼的课,他那显示Segmentation fault,没显示=0。这又是什么原因
段内存溢出 一叶枫残 发表于 2021-2-10 23:48
在stdio.h里有宏定义
即NULL = 0
#define NULL (void *(0)) Minecraft程序猿 发表于 2021-2-11 12:40
#define NULL (void *(0))
这两个都行,你用if判断都有一样的结果 一叶枫残 发表于 2021-2-11 15:35
#define NULL (void *(0))
这两个都行,你用if判断都有一样的结果
是吗(O) NULL指针是空指针,C语言里定义为(void*)0 Minecraft程序猿 发表于 2021-2-11 12:39
段内存溢出
那为什么Dev-C++不显示这个段内存溢出而回显示=0啊,求解 h5681901 发表于 2021-2-11 19:52
那为什么Dev-C++不显示这个段内存溢出而回显示=0啊,求解
段错误是因为你尝试访问0地址, 打印只是把0打印出来, 怎么会报错? h5681901 发表于 2021-2-11 19:52
那为什么Dev-C++不显示这个段内存溢出而回显示=0啊,求解
你在初始化时指定为NULL,也就是(void *(0)),0
页:
[1]