使用new / malloc是否绕过了本地指针的警告?

时间:2014-11-14 10:26:03

标签: c++ pointers warnings compiler-warnings

我有以下代码:

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

这给了我以下警告:

  

警告:返回本地变量'result'的地址[-Wreturn-local-addr]

但是不使用new关键字意味着这应该不是问题?在此功能结束后我是否有丢失数据的风险,或者它是否会安全地存在于堆栈中?如果它安全地存在于堆栈中,我该如何摆脱警告?

1 个答案:

答案 0 :(得分:2)

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

因此,在这种情况下,变量没有超出范围的危险,但仍然有人会删除那些记忆吗?

即使您使用malloc,我相信您也无法摆脱警告。