这是我的计划:
#include<stdio.h>
int main()
{
int *n;
int var;
scanf("%d",n);
printf("%d",*n);
}
因为scanf
将值存储在指定地址我给出地址。然后我尝试在地址处打印值,但是它给出了段错误。
答案 0 :(得分:2)
你应该为这样的指针分配内存:
int* n = (int*)malloc(sizeof(int))
答案 1 :(得分:2)
这是因为尚未分配内存块以包含变量n
引用的整数值。您只初始化了一个指向内存块的指针,而不是内存块本身。
如果您改为执行以下操作,代码将起作用:
#include <stdio.h>
int main()
{
int n;
scanf("%d", &n);
printf("%d", n);
}
答案 2 :(得分:0)
var n
是指针,你没有malloc内存。