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

the*_*y05 -1 c malloc dynamic-memory-allocation

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

ints:   20 bytes stored at 0xbffa84fc 
doubles:   80 bytes stored at 0xbffa84fc 
chars:   8 bytes stored at 0xbffa84fc 
Students:   1008 bytes stored at 0xbffa84fc
Run Code Online (Sandbox Code Playgroud)

Yu *_*Hao 6

blk->addr = &blk;
Run Code Online (Sandbox Code Playgroud)

分配的内存的地址实际上就是blk它自己.但在这里,你正在使用&blk,即地址blk.

  • 似乎即使是最微不足道的编译器警告也应该抓住这一点. (3认同)