Lua清除内存。

我正在Lua中制作一个简单的数字破解器,并遇到了一个“堆栈溢出”错误(噢,具有讽刺意味)。我不确定这个错误实际上是什么,因为当我在谷歌上搜索时,我只得到了这个我已经使用了一段时间的网站。我想要一种清除Lua文件中内存的方法。该程序非常快地遍历数字,并且可以将数字运行多达2147483647次,因此我认为这是一个内存问题。有没有一种方法可以在运行脚本的同时清除Lua脚本中的内存?这是我的代码:

num = 0
rand = math.random(2147483647)
function Main()
    print ("Please enter your number(0 - 2147483647)")
    ui = io.read("*number")
    loop()
end
function loop()
    if rand > ui and rand ~= ui then
        rand = math.random(0, ui)
        num = num + 1
        print(rand)
    end
    if rand < ui and rand ~= ui then
        rand = math.random(ui, 2147483647)
        num = num + 1
        print(rand)
    end
    if ui ~= rand then
        loop()
    end
    if ui == rand then
        print("Number Cracked - " ..ui)
        print("It Took " ..num .." Trys To Crack Your Number")
        done = io.read()
    end
end
Main()

编辑

感谢@Marc B和@Blaatz0r的评论,他们回答了我的问题,调用了太多次loop(),导致出现了“堆栈溢出”,我用while循环替换了它,感谢@Marc B,这是我的新代码:

num = 0
rand = math.random(2147483647)
function Main()
print ("Please enter your number(0 - 2147483647)")
ui = io.read("*number")
while( ui ~= rand) do
if rand > ui and rand ~= ui then
rand = math.random(0, ui)
num = num + 1
print(rand)
end
if rand < ui and rand ~= ui then
rand = math.random(ui, 2147483647)
num = num + 1
print(rand)
end
if ui == rand then
print("Number Cracked - " ..ui)
print("It Took " ..num .." Trys To Crack Your Number")
done = io.read()
end
end
end
Main()
点赞
用户4689611
用户4689611

感谢 @Marc B 和 @Blaatz0r 对答案的评论,我发现我调用了很多次 loop(),导致了“堆栈溢出”,我将它替换成了 while 循环,感谢 @Marc B,这是我的新代码:

num = 0
rand = math.random(2147483647)
function Main()
    print("请输入您的数字(0-2147483647)")
    ui = io.read("*number")
    while(ui ~= rand) do
        if rand > ui and rand ~= ui then
            rand = math.random(0, ui)
            num = num + 1
            print(rand)
        end
        if rand < ui and rand ~= ui then
            rand = math.random(ui, 2147483647)
            num = num + 1
            print(rand)
        end
        if ui == rand then
            print("破解数字 - " ..ui)
            print("尝试破解您的数字,共用了 " ..num .." 次")
            done = io.read()
        end
    end
end
Main()
2016-01-15 20:02:28