cha*_*uze -1 c crash pointers codeblocks
我正在深入研究C中的指针,但是当我写一个简单的代码来解决这个问题时.
IDE:Code :: Blocks
操作系统:Windows 8.1
#include <stdio.h>
int main(){
int x;
x = 6;
int* p;
*p = &x; // This is wrong
printf("%d\n",*p);
}
Run Code Online (Sandbox Code Playgroud)
你需要改变*p = &x;.请p = &x;改用.
它正在崩溃,因为你正在使用*p未初始化的指针.声明时int* p;,C语言规范p未定义初始化值.您还尝试将地址()分配给占位符(指向的值).&xint*pp
因此,当您尝试通过执行取消引用p下一个句子上的指针时*p,您可能正在尝试访问您的进程无法使用的内存位置.
p = &x; // you are pointing p to x variable memory location
printf("%d\n",*p); // should print 6
*p = 10;
printf("%d\n",*p); // should print 10
printf("%d\n",x); // should also print 10
Run Code Online (Sandbox Code Playgroud)