c-malloc函数将所有数据分配到相同的内存地址



现在,当我打印块数组中的每个元素时,每个元素都有相同的地址。例如:

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的地址。

malloc返回一个void指针。

在这里,它返回一个指向"blk"的void指针,但类型转换为数据类型"BlockType"。因此,'lk'已经保存了已分配内存的地址,但语句'blk->addr=&blk指向blk的地址,这显然是相同的。

相关内容

  • 没有找到相关文章

最新更新