1 つの MEX ファイルで、次のコマンドを使用して出力行列を作成しました (正常に動作しています)。
plhs[0] = mxCreateNumericMatrix((mwSize)destLen, 1, mxUINT8_CLASS, mxREAL);
高速化のために、初期化されていない動的メモリを使用したかったため、文書化されていないコマンドにたどり着きました。
plhs[0] = mxCreateUninitNumericMatrix((mwSize)destLen, 1, mxUINT8_CLASS, mxREAL);
Win32 および Win64 でも問題なく動作します。
Linux 環境でまったく同じコードを使用すると、コンパイラから次の警告が表示されます。
warning: assignment makes pointer from integer without a cast [enabled by default]
コードがクラッシュします。これは、返された整数値が正しいメモリ アドレスを指している値ではないことを示しています。
を使用するにはどうすればよいmxCreateUninitNumericMatrix
ですか?