我有几个疑问,我记得有些地方我无法手动将变量放在内存中的特定位置,但后来我遇到了这段代码
#include<stdio.h>
void main()
{
int *x;
x=0x200;
printf("Number is %lu",x); // Checkpoint1
scanf("%d",x);
printf("%d",*x);
}
是我们不能把它放在一个特定的位置,还是我们不应该把它放在一个特定的位置,因为我们不知道它是否是一个有效的位置?
此外,在这段代码中,直到第一个检查点,我得到的输出是 512。然后是 Seg Fault。
有人可以解释为什么吗?0x200 不是有效的内存位置吗?