0
void update(int s) {
68 double *ungfi = new double[arraysisasazei];
69 double *vnsasai = new double[arraysizasaei];
70 deriv(dvsasi,vnsasai);
71 deriv(dusaasi,ungfi);
上面的代碼是引起我的錯誤,謝謝kerrek SB的答覆泄漏預防Valgrind的
==745== 800,000 bytes in 1,000 blocks are definitely lost in loss record 1 of 2
如果我使用delete [] uni;在'刪除'之前,我得到了一個預期的非限定標識的錯誤 – user2830047
@ user2830047:你在函數返回前添加了delete *函數嗎?如果我(錯誤地)將它*放在函數外面,我會得到該錯誤。 –
@ user2830047:如果你真的,真的想自己使用'delete',儘管我的建議,確保你覆蓋每一個可能的回報路徑。即使那樣,如果有任何事情拋出異常,你很可能會泄漏。使用RAII來管理動態資源要好得多。 –