打印出指针指向的值(C编程)

时间:2013-10-20 23:04:20

标签: c pointers segmentation-fault

我想打印指向指针的内容。这是我的代码:

int main(){
    int* pt = NULL;
    *pt = 100;
    printf("%d\n",*pt);
    return 0;
}

这给了我一个分段错误。为什么呢?

2 个答案:

答案 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;
}