2016-01-22 3 views
1

Я бег Matlab из Fortran функции и возникаю постоянную проблему, которую я получаю ошибку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 секундами до возникновения этой ошибки.

Похоже, они использовали mxDestroyArray, которые я уже использую.

Советуете?

+0

Достаточно полная догадка: возможно, вы должны заключить вызовы 'mxCopyPtrToReal8()' и 'mxDestroyArray()' в 'if (MLVar! = 0), а затем' 'endif' ... – Gilles

+0

Как создается MLVar ? – Navan

+0

MLVar объявлен как 'mwPointer MLVar' – user1543042

ответ

0

Проблема в том, что она полностью не связана. Я отправляю это в удаленный кластер, используя сценарий отправки, и я использовал опцию «V», а затем, когда я закрыл свое терминальное соединение с принудительным закрытием Matlab.