gpt4 book ai didi

c - C 中 malloc 分配的意外大小输出

转载 作者:行者123 更新时间:2023-12-04 10:07:38 25 4
gpt4 key购买 nike

<分区>

我读到 malloc 实际上分配了 (required_size + 1) 个内存块,并将大小存储在第一个 block 中,并返回指向第二个 block 的指针。这样 free() 就知道要释放多少内存。所以,我写了一个小代码来输出这个大小。

int *p = (int *)malloc(100*sizeof(int));
printf("size = %d\n",p[-1]);

因为我正在为 100 个整数分配空间,所以我期望大小为 400。但输出为 409。对于 50 个整数的输出为 209,对于 1000 个整数的输出为 4009。有人可以解释为什么输出关闭9个字节?

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com