#include <stdio.h>
int main(void)
{
int* a;
*a=20;
printf("%i\n",*a);
return 0;
}
我有上面的代码。当代码在运行时时,我总是收到错误消息“filename.exe 已停止工作”。为什么?
最佳答案
您没有为指向的指针分配任何内存。您可以这样做:
int *a = malloc(sizeof(*a));
或者像这样:
int value;
int *a = &value;
如果您使用 malloc
进行分配,那么当您使用完指针后,您将需要对指针调用 free
。
访问未初始化的指针会导致未定义的行为。在您的程序中,它导致了段错误,这是未初始化指针访问的一种常见结果。
关于c - 一个简单的指针代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15760329/