gpt4 book ai didi

c++ - 使用 new/malloc 是否可以绕过本地指针的警告?

转载 作者:行者123 更新时间:2023-11-28 02:37:50 24 4
gpt4 key购买 nike

我有以下代码:

int* CoverFunction(){
int* result =new int[3];
result[0]=1;
result[1]=2;
result[2]=3;
return result;
}

这给了我以下警告:

warning: address of local variable ‘result’ returned [-Wreturn-local-addr]

但是使用 new 关键字不就意味着这不应该成为问题吗?在此函数结束后,我的数据是否有被删除的风险,或者它会安全地存在于堆栈中吗?如果它安全地存在于堆栈中,我该如何消除警告?

最佳答案

当您使用 new/malloc 时,内存是从堆中分配的。

因此,在这种情况下不存在变量超出范围的危险,但仍然存在谁会删除该内存的问题?

而且我相信即使使用 malloc 也无法摆脱该警告。

关于c++ - 使用 new/malloc 是否可以绕过本地指针的警告?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26927826/

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