我試圖讓我的mex庫避免所有的內存分配甚至如此。
直到現在,mex得到了一個輸入,使用mxCreate...()
創建了一些矩陣並返回了這個輸出。
但現在我想修改這個接口,以便mex本身不會做任何分配。
我想到的是,mexFunction將得到作爲輸入的矩陣來填充值並返回與輸出相同的矩陣。Matlab:避免mex中的內存分配
這應該是可能的嗎?
讓我想到,如果這是我需要做的所有事情的輕微警告是,左手參數來作爲const的mexFunction和右手參數是非const。將輸入矩陣作爲輸出返回,我需要刪除這個常量。
有''extern bool mxUnshareArray(mxArray * array_ptr,bool noDeepCopy);'應該解決那些耦合問題的未公開的matlab函數(在C中可用)。詳情可以在[here]找到(http://www.mk.tu-berlin.de/Members/Benjamin/mex_sharedArrays)。 – 2013-02-20 11:45:59