指针错误消息

时间:2013-04-15 17:43:51

标签: c xcode macos pointers

如果我的问题看起来非常简单,我会提前道歉,但我不明白为什么如果我跑了

int main(){
    int *count = 0;
    printf("%d",*count);
}

我没有输入(使用Xcode)和错误:

  

线程1:EXC_BAD_ACCESS(代码= 1,地址= 0x0)

有人可以向我解释这是什么吗?

2 个答案:

答案 0 :(得分:3)

取消引用空指针会发生什么,这是未定义的行为:您的count指针,这意味着它需要指向有效位置才能从中读取:

int main(){
    int *count = malloc(sizeof(int)); // Give your pointer a valid location
    *count = 123;                     // This is valid now
    printf("%d", *count);             // prints 123
    free(count);                      // Don't forget to free allocated memory
}

答案 1 :(得分:2)

您已将count声明为指向整数值的指针而不是整数值,并且您已将指针初始化为NULL(内存地址0)。

您可能希望执行以下操作...

int main()
{
   int buffer = 0;
   int* count = &buffer;
   printf( "var %d = %d\n", buffer, *count );
}