如果我的问题看起来非常简单,我会提前道歉,但我不明白为什么如果我跑了
int main(){
int *count = 0;
printf("%d",*count);
}
我没有输入(使用Xcode)和错误:
线程1:EXC_BAD_ACCESS(代码= 1,地址= 0x0)
有人可以向我解释这是什么吗?
答案 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 );
}