0
私はmexコードを書いています。私はメモリを非常に効率的に使用していないと思っています。ここに私がしていることがあります。私はこの問題は私がしなければ、私はMatlabの中でそれを使用するので、私は、セグメンテーションエラーが発生しますので、私は、私は外に変数に割り当てるメモリを解放しておりませんということですメモリをmexコードで解放する
out=mxMalloc(sizeof(double)*N);
plhs[0]=mxCreateDoubleMatrix(1,N,mxREAL);
set(plhs[0],out);
のようにアウトと呼ばれる変数のメモリを割り当てています。だから誰も私の上のコマンドは何をやっているより良いテクニックを提案することができますか?とにかくメモリを解放したり、長さ1X Nの行列を定義しないようにするにはどうすればよいですか?
ありがとうございました。
私がplhs [0 [出力[出力]を指していると思われるものをplhs [0]に割り当てたいとします。私の場合は、データ1XNのベクトルであり、plhs [0]に割り当てようとしています。これは私のMATLAB出力です。あなたはあなたの答えについて詳しく述べることができますし、あなたのアウトプットと私のアウトが同じであるかどうか教えてください。 – justin
@justin申し訳ありませんが、私は 'out'を意味しました。最初に 'out'を割り当てて(' mxCreateDoubleMatrix'を使って)、それをあなたのmexファイルの残りの部分に埋め込むことができます。それを別々に割り当てる必要はありません。 – Suever