Main Content

大きい構造体を入力パラメーターとして渡す

フィールドが行列となるような構造体など、大規模な構造体を入力パラメーターとして受け取る MATLAB® 関数の MEX 関数を生成する場合、MEX 関数の読み込みが失敗する場合があります。読み込みが失敗するのは、入力パラメーターをもつ MATLAB 関数から MEX 関数を生成する際に、コード ジェネレーターがこれらの入力パラメーターに対してスタックでメモリを割り当てるためです。この問題を回避するには、構造体を参照によって MATLAB 関数に渡します。たとえば、元の関数が以下のようなシグネチャであるとします。

y = foo(a, S)

ここで、S は構造体入力です。この場合、この関数は以下のように書き直します。

[y, S] = foo(a, S)