2016-01-22 150 views
1

我從Fortran函數運行Matlab和我有,我得到的錯誤mxDestroyArray雙重釋放或腐敗

*** glibc detected *** /matlab/8.5/bin/glnxa64/MATLAB: double free or corruption (out): 0x00002b11a9a86f20 *** 

一個長期存在的問題,我不知道這行的錯誤是發生在,但我有相當一些遵循這種模式

MLVar = engGetVariable(ep, 'un') 
call mxCopyPtrToReal8(mxGetPr(MLVar), SurfaceField, BoundaryCells) 
call mxDestroyArray(MLVar) 

我在這個錯誤發生之前經過1到100之間的這個函數。

看起來像here他們說使用mxDestroyArray我已經在使用。

有沒有建議嗎?

+0

只是一個完整的猜測:也許你應該把調用'mxCopyPtrToReal8()'和'mxDestroyArray()'放入一個if(MLVar!= 0)然後是'endif'塊... – Gilles

+0

MLVar是如何創建的? – Navan

+0

MLVar被聲明爲'mwPointer MLVar' – user1543042

回答

0

問題最終變得完全不相關。我使用提交腳本將它提交給遠程集羣,並且我使用了「V」選項,然後當我用Matlab關閉終端連接時強制關閉。

相關問題