我想打印指向指针的内容。这是我的代码:
int main(){
int* pt = NULL;
*pt = 100;
printf("%d\n",*pt);
return 0;
}
这给了我一个分段错误。为什么呢?
答案 0 :(得分:11)
这些行:
int* pt = NULL;
*pt = 100;
取消引用NULL
指针(即您尝试将值100
存储到地址NULL
的内存中),这会导致 未定义的行为 即可。尝试:
int i = 0;
int *p = &i;
*p = 100;
答案 1 :(得分:5)
因为你试图写地址为NULL。
尝试:
int main(){
int val = 0;
int* pt = &val;
*pt = 100;
printf("%d\n",*pt);
return 0;
}