析构函数中的一个小疑点!

析构函数中的一个小问题!!
C/C++ code

class Linear {
public:
    int *ip;
    int length;
    int listSize;
    Linear():length(0),listSize(10),ip(new int[listSize]) {
    }
    ~Linear(){
        delete ip;
    }
}


如这段代码,delete删除的为什么是ip,而用delete ip[]就会出错,明明ip初始化的位数组啊!

------解决方案--------------------
应该是这样吧 delete [] ip; 吧
------解决方案--------------------
delete [] ip;
------解决方案--------------------
C/C++ code
if( NULL != ip)
   delete [] ip;

------解决方案--------------------
探讨

C/C++ code
if( NULL != ip)
delete [] ip;

------解决方案--------------------
除了上面的判断,还得把int *ip;定义在listSize后
因为初始化列表的顺序是数据成员声明的顺序
而不是你这样的顺序“length(0),listSize(10),ip(new int[listSize])”

listSize没初始化就初始化ip
------解决方案--------------------
探讨
除了上面的判断,还得把int *ip;定义在listSize后
因为初始化列表的顺序是数据成员声明的顺序
而不是你这样的顺序“length(0),listSize(10),ip(new int[listSize])”

listSize没初始化就初始化ip