【发布时间】:2012-02-27 18:22:54
【问题描述】:
我写了一个简单的代码:-
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 应该是
printf("%p\n", aa);。而sizeof(char)的定义是 1。 -
你为什么在
malloc之前free(aa)?另外,sizeof(char) 总是返回 1 个字节。 -
抱歉重复了两行代码
标签: c malloc heap-memory