new的时候带[]表示是开了一组内存空间,所以只能用delete[]来释放这一组空间;new的时候不带[]表示只开了一个空间,delete的时候当然也不用带[],表示释放这一个内存空间。
delete删除的是new出来的单个指针。delete[]删除的是new出来的数组。
比如 :
Button *btn = new Button();
就用 delete btn;
int *arr = new int[100];
就用 delete [] arr;
用new type[] 分配的内存,就用delete[] 删除。new type就用delete。不能用反的。