gpt4 book ai didi

c - malloc() 和创建变量然后使用 & 运算符之间有区别吗?

转载 作者:行者123 更新时间:2023-11-30 20:55:06 26 4
gpt4 key购买 nike

在C语言中,有什么区别

struct Foo foo;
struct Foo* fooPtr = &foo;

struct Foo* fooPtr = (struct Foo*) malloc(sizeof(struct Foo));

最佳答案

当然有。

这取决于您分配 foo 变量的位置 - 它可能位于(静态分配的)数据段中,也可能位于堆栈上。在第一种情况下,它永远不会消失,而在第二种情况下,它可能会很快消失,具体取决于您对指针的操作。

OTOH,如果您malloc(),数据将被放入堆中,并且它将一直保留到您free()为止。这使您可以灵活地运用您的内存。

关于c - malloc() 和创建变量然后使用 & 运算符之间有区别吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35397356/

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