luaから呼び出されるac関数があります。最初のパラメーターはテーブルです。そのテーブルは、基になる API への数値の入力配列として悪用されます。だから今私のコードは次のようになります:
int n = 0;
lua_pushnil ( L );
while ( lua_next ( L, 2 ) ) {
n++;
lua_pop ( L, 1 );
}
int *flat = alloca ( n * 4 );
lua_pushnil ( L );
int i = 0;
while ( lua_next(L,2) ) {
flat[i++] = (int)lua_tonumber( L, -1 );
lua_pop ( L, 1 );
}
コードをブラインドで入力したので、エラーを許してください。また、エラーチェックもありません。しかし問題は、while ループを 2 回実行しなければならないことです。それを回避する簡単な方法はありますか?入力が適切な場合 (int のテーブル) に合わせて最適化したい。