c++中返回参数为引用时不能是在栈中分配的(必须在堆中创建这样内存是手动释放,而栈中因为函数结束会自动释放栈中的内存)

如下实例

int* TempV=nullptr;
void fun(int value)
{
    int a=value;//函数结束栈将自动回收内存。
    TempV=&a;
}
int main()
{    
fun(99);
qDebug()<<"返回"<<*TempV;//此时TempV指针变量中指向的地址中的值不是99而是随机的一个不可预测的值,因为函数结束栈自动回收了内存。
}

你可能感兴趣的:(堆栈,指针,内存结构,c++,java,开发语言)