Lua 5.1.5 中的 table.insert 导致程序崩溃

我有一个函数,当我直接从全局表中调用它时可以正常工作,但当我从一个本地函数中调用该函数时,该函数会导致程序崩溃,该本地函数使用 wxLua 初始化 GUI。通过逐行查找,我意识到 table.insert 导致应用程序完全崩溃。

我的代码是:

--准备3D表格
for i=1, size(v2) do
    tbl[i]={}
    for j=1,size(v1) do
        tbl[i][j]={}
    end
end

for k=1, size(yobs) do
    local i,j=0, 0
    repeat i=i+1 until x2(k)==v2(i)
    repeat j=j+1 until x1(k)==v1(j)
    table.insert(tbl[i][j],yobs(k))
end

上述代码导致崩溃,就在 table.insert 那里。我已经按以下方式更改了代码,现在它工作得很好。

for k=1, size(yobs) do
    local i,j=0, 0
    repeat i=i+1 until x2(k)==v2(i)
    repeat j=j+1 until x1(k)==v1(j)
    local pos=#tbl[i][j]
    if(pos==nil) then tbl[i][j][1]=yobs(k) else tbl[i][j][pos+1]=yobs(k) end
end

我想知道是否存在 table.insert 函数的已知 bug。我正在使用在 Windows 10 上运行的 tdm-gcc 4.8.1 编译的 Lua 5.1.5。

点赞