luaのスクリプトで、グローバルにこんな配列があったとして
test={3,4,5}
これにアクセスする
//グローバル配列へのアクセス
lua_getglobal(L, "test");
lua_rawgeti(L, -1, 1);
printf("%f\n",lua_tonumber(L,-1));
lua_pop(L, 1);
lua_rawgeti(L, -1, 2);
printf("%f\n",lua_tonumber(L,-1));
lua_pop(L, 1);
lua_rawgeti(L, -1, 3);
printf("%f\n",lua_tonumber(L,-1));
lua_settop(L, 0);
- 注意
- 配列インデックスの初期値は1
- rawgetiを実行した時点で、スタックには値とテーブルが格納されている
- lua_tonumberを実行しても値はポップしないので、明示的にlua_popしてやること
- 次の作業の前にスタックを空にしておいた方がいいだろう