它的C程序正在运行x86_64机器,想知道输出是怎么来的
main()
{
int *mess;
mess=malloc(1);
mess[0]=1;
//mess[1]=2;
printf("%d",mess);
}
Run Code Online (Sandbox Code Playgroud)
现在这里输出的是6295568
如何??
您正在打印存储int的地址.你需要
printf("%d",*mess);
Run Code Online (Sandbox Code Playgroud)
打印它的价值.
你也为你的int分配太少的空间,你应该这样做:
int *mess = malloc(sizeof(int));
Run Code Online (Sandbox Code Playgroud)
代替
int *mess = malloc(1);
Run Code Online (Sandbox Code Playgroud)