现在,当我打印块数组中的每个元素时,每个元素都有相同的地址。例如:
ints: 20 bytes stored at 0xbffa84fc
doubles: 80 bytes stored at 0xbffa84fc
chars: 8 bytes stored at 0xbffa84fc
Students: 1008 bytes stored at 0xbffa84fc
blk->addr = &blk;
所分配的存储器的地址实际上是blk
本身。但在这里,您使用的是&blk
,即blk
的地址。
在这里,它返回一个指向"blk"的void指针,但类型转换为数据类型"BlockType"。因此,'lk'已经保存了已分配内存的地址,但语句'blk->addr=&blk指向blk的地址,这显然是相同的。