运行x86_64机器的C程序,想知道输出是怎么来的
main()
{
int *mess;
mess=malloc(1);
mess[0]=1;
//mess[1]=2;
printf("%d",mess);
}
现在这里输出的是6295568
怎么样?
答案 0 :(得分:6)
您正在打印存储int的地址。你需要
printf("%d",*mess);
打印其值。
你也为你的int分配的空间太少,你应该这样做:
int *mess = malloc(sizeof(int));
而不是
int *mess = malloc(1);