gpt4 book ai didi

c - 函数中结构指针的范围

转载 作者:太空宇宙 更新时间:2023-11-04 02:57:40 25 4
gpt4 key购买 nike

如果我在函数中有以下内容:

struct example *A=malloc(sizeof(struct example));

在函数结束/离开后,A 指向的节点/内存空间是否会被销毁?还是留在堆中?

最佳答案

没有。由 malloc 分配的内存将一直分配到 free 为止。

做这样的事情:

char * function(void)
{
char c = 'a';
return &c;
}

另一方面,这是不好的,因为当函数结束时这个对象确实超出了范围。

malloc 在堆上分配内存。声明变量会在堆栈上分配空间。堆栈受作用域影响,而堆则不受。

有关指针使用的更多信息,包括内存泄漏等各种陷阱(丢失对 malloc 内存的引用以使其永远存在的过程),请访问 this link .

关于c - 函数中结构指针的范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15537890/

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