C++关于char*型数组的new与delete

2024-12-02 22:59:02
推荐回答(1个)
回答1:

  1. 有一个new操作,就需要一个delete操作

  2. 有一个new []操作,就需要一个delete[]操作,否则内存泄漏

    所以应该是

    {
    char* s = new char[100];
    delete[] s;
    }

    s本身存在于栈,指向的空间位于堆

  3. char* s = "hello";//“hello”是常量,会被放入全局变量区,不会因为}结束而消失。s是栈区会消失。

  4. 最后一个,如果在bar返回后,直接丢弃返回的指针,肯定会内存泄漏