gpt4 book ai didi

c - Malloc 在内存中分配相同的地址?

转载 作者:太空宇宙 更新时间:2023-11-03 23:26:28 25 4
gpt4 key购买 nike

我发现了与我类似的问题,但我仍然无法弄清楚为什么我的代码会这样运行。

我有一个名为“矩形”的结构,这是我要运行的代码:

Rectangle *newRect = (Rectangle *)malloc(sizeof(Rectangle));
Rectangle *newRect2 = (Rectangle *)malloc(sizeof(Rectangle));
printf("rect1: %p rect2: %p",newRect,newRect2);

它为它们输出相同的地址,我做错了什么?

谢谢!

最佳答案

您可能没有在所有警告都打开的情况下进行编译,并且忘记包含 stdlib.hmalloc 然后被一些编译器解释为返回 int 而不是 void*。在 64 位架构上,这会丢失重要信息,因此最终您会在打印中看到相同的值。

不要转换 malloc 的返回值。

关于c - Malloc 在内存中分配相同的地址?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26155136/

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