有一个new操作,就需要一个delete操作
有一个new []操作,就需要一个delete[]操作,否则内存泄漏
所以应该是
{char* s = new char[100];delete[] s;}
s本身存在于栈,指向的空间位于堆
char* s = "hello";//“hello”是常量,会被放入全局变量区,不会因为}结束而消失。s是栈区会消失。
最后一个,如果在bar返回后,直接丢弃返回的指针,肯定会内存泄漏