我写了一个简单的代码:-
void * aa = malloc(10 * sizeof(char));
printf("%X\n", aa);
free(aa);
它总是打印 ???????8, 我想问的是: malloc是否总是返回4 * n地址? 为什么这里地址的最后一个数字总是8?为什么不是4或C? 我的环境: ubuntu 10.04(32位) gcc版本4.4.3
printf("%p\n", aa);
。而且sizeof(char)
的定义是1。 - cnicutarmalloc
之前要执行free(aa)
?此外,sizeof(char)
总是返回 1 字节。 - Taco de Wolff