现在,当我在块数组中打印每个元素时,每个元素都具有相同的地址。例如:
ints: 20 bytes stored at 0xbffa84fc
doubles: 80 bytes stored at 0xbffa84fc
chars: 8 bytes stored at 0xbffa84fc
Students: 1008 bytes stored at 0xbffa84fc
答案 0 :(得分:6)
blk->addr = &blk;
分配的内存的地址实际上是blk
本身。但在这里,您使用的是&blk
,即blk
的地址。
答案 1 :(得分:0)
malloc返回一个void指针。
这里它返回一个指向' blk'的无效指针,但是将其类型化为数据类型' BlockType'。所以,' BLK'已经保留了已分配内存的地址,但语句“> blk-> addr =& blk'指向' blk'的地址这显然是一样的。