1 c
我在硬件上运行这段代码.
unsigned char *buf;
buf = malloc(sizeof(int));
printf("Address of buf %d\n" , &buf);
if(!buf)
return MEMORYALLOC_FAILURE;
Run Code Online (Sandbox Code Playgroud)
在malloc将返回负值.可能是什么问题呢?
MBy*_*ByD 10
malloc返回的地址不是负数或正数,它只是地址,使用%p来打印它,而不是%d:
printf("Address of buf %p\n" , &buf);
Run Code Online (Sandbox Code Playgroud)
如果要打印从malloc返回的地址,请删除&符号:
printf("Address of buf %p\n" , buf);
Run Code Online (Sandbox Code Playgroud)