【问题标题】:Printing out the value pointed by pointer (C Programming)打印出指针所指向的值(C 编程)
【发布时间】:2013-10-29 07:39:50
【问题描述】:

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

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

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

【问题讨论】:

  • 当你指向某个东西时,它必须存在。试试malloc,它就会存在!

标签: c pointers segmentation-fault


【解决方案1】:

这些行:

int* pt = NULL;
*pt = 100;

正在取消引用NULL 指针(即您尝试将值100 存储到地址NULL 的内存中),这会导致未定义的行为。试试:

int i = 0;
int *p = &i;
*p = 100;

【讨论】:

    【解决方案2】:

    因为您正试图写入地址 NULL。

    试试:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-01-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多