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

标签 c malloc dynamic-memory-allocation

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

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

关于c - malloc函数将所有数据分配到同一内存地址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26599460/

相关文章:

c++ - _Deref_ 和 _Outptr_ sal 注释

c - 如何等到数据写入管道的另一端

c - 添加 gets() 函数后 printf() 语句的输出未正确显示

C - 读取未知长度的字符串说明

c - 尝试填充动态数组时出现访问冲突(大量项目)

c - 两个独立进程之间的共享变量

c - 将 malloc 与 char 指针一起使用时出现段错误

c - 如果请求超出可用物理内存,如何使malloc/calloc失败(即,不要使用swap)

c - malloc 可以分配的最大内存

c - 调整数组大小后出现段错误