小编sou*_*ula的帖子

为什么指针的分配内存在函数之后仍然存在,而不是数组?

所以,我在C++书中看到的基本文本输入函数的上下文中提出这个问题:

char *getString()
{
    char temp[80];
    cin >> temp;
    char * pn = new char[strlen(temp + 1)];
    strcpy(pn, temp);
    return pn;
}
Run Code Online (Sandbox Code Playgroud)

因此temp声明了一个包含80个字符的数组,这是一个自动变量,其内存将在getString()返回时被释放.有人建议,如果temp由于某种原因返回,它在函数之外的使用将不可靠,因为一旦函数完成就释放了内存.但是既然我也在pn相同的语境中宣称,为什么它的记忆也不会被丢弃?

c++ memory arrays pointers scope

4
推荐指数
1
解决办法
351
查看次数

标签 统计

arrays ×1

c++ ×1

memory ×1

pointers ×1

scope ×1