2016-10-02 50 views
-1

我搜索了這個問題,但是我找不到它,如果它是一個沒有提供否定點的重複問題,請告訴我答案的鏈接。刪除C++中的一個新方法所構造的析構函數中的一個類的成員

學生類我有很多成員,但其中四個是由運營商的方法公開呼籲設置

我寫的只是其中的一個在這裏創建:

class Student{ 
    private: 
    float *tp; 
    .... 
} 

這裏是設置公共的方法:

void Student::set(int field, int valeur){ 
    ... 
      tp = new float[valeur]; 
    ...  
} 

這裏是析構函數這是公共

~Student(){ 
     ... 
     delete tp; 
     ... 
    } 

主要

... 
Student *students=new Student[n]; 
... 
delete students; 

沒有任何錯誤在編譯過程中,但是當我運行所面臨的錯誤:

我也改變了主要代碼只是爲了檢查,如:尚未

Student s; 

錯誤存在。

enter image description here

+0

有代碼錯誤,你沒有張貼 –

+0

請提供你包含的內容表現出這個問題 – vu1p3n0x

+0

最小但完整的代碼示例,你不叫'set'和因此'tp'可能有一個不確定的值,導致'delete tp'具有未定義的行爲 – vu1p3n0x

回答

1

了Az vu1p3n0x說:

如果我用新的[]我應該使用delete []。

謝謝vu1p3n0x

+1

很高興我能幫助:D – vu1p3n0x

相關問題