delete一个指针数组时(其中的指针指向不同的数组),会不会把指针们指向的数组也销毁?
比如:
int**p;
p=new int*[10];
p[0]=new int[10];
delete[] p;
delete一个指针数组时(其中的指针指向不同的数组),会不会把指针们指向的数组也销毁?
比如:
int**p;
p=new int*[10];
p[0]=new int[10];
delete[] p;
对于原生语义,并不会。需要手动遍历销毁。
但是由于delete的语义可以通过重载来自定义,因此你也可以实现不同的行为,但通常不这样做。