今天在思考cpp中关于new int[0]的问题
思考下面这么一段代码:
int * a = nullptr; // a==nullptr
a = new int[0]; // a!=nullptr
delete[] a;
上面这段代码发生delete会执行怎么一个过程呢?
a!=nullptr,那么会不会释放a[0]这个位置的内存,以及cpp 中new int[0]的意义
今天在思考cpp中关于new int[0]的问题
思考下面这么一段代码:
int * a = nullptr; // a==nullptr
a = new int[0]; // a!=nullptr
delete[] a;
上面这段代码发生delete会执行怎么一个过程呢?
a!=nullptr,那么会不会释放a[0]这个位置的内存,以及cpp 中new int[0]的意义
动态分配一个空数组是合法的,new返回一个合法的非空指针,释放这个指针也是合法的