gpt4 book ai didi

c - malloc 是否分配从 0 到正无穷大的内存?

转载 作者:太空宇宙 更新时间:2023-11-04 05:01:08 24 4
gpt4 key购买 nike

我写了一个测试程序,以为p1的地址会小于p2,但是当我编译代码时,结果发现p2的地址更低(p1比p2大8个单位)。我还听说有传言说 2 个相邻的内存块会自动合并。这在以下代码中有任何作用吗?

void main(){
char *p1, *p2;
p1=malloc(4);
p2=malloc(5);
p1="yah";
p2="goog";
printf(" p1 = %d, and p2 = %d \n", p1, p2);
}

最佳答案

您不是打印从 malloc 返回的地址,而是打印字符串文字的地址(静态分配的)。如果要填充 block ,请使用 strcpy;不过,这样做并不是打印地址所必需的。

此外,使用 %p 打印指针。

关于c - malloc 是否分配从 0 到正无穷大的内存?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1592363/

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