-5

它的 C 程序正在运行 x86_64 机器,想知道输出是如何这样的

main()
 {
 int  *mess;
mess=malloc(1);
mess[0]=1;
//mess[1]=2; 
printf("%d",mess);
}

现在这里的输出是 6295568

如何??

4

1 回答 1

6

您正在打印存储 int 的地址。你需要

printf("%d",*mess);

打印它的值。

您还为您的 int 分配了太少的空间,您应该这样做:

int *mess = malloc(sizeof(int));

代替

int *mess = malloc(1);
于 2013-08-27T14:51:31.493 回答