Memory 清晰的记忆
我正在Lua内部制作一个简单的数字破解程序,我遇到了一个“堆栈溢出”错误(哦,很讽刺)。我不是100%的错误,因为当我用谷歌搜索它时,我得到的只是这个我已经使用了一段时间的网站。我想有一种方法来清除lua文件中的内存。这个程序运行数字非常快,它可以运行这些数字多达2147483647次,所以我假设这是一个内存问题。那么,有没有一种方法可以在运行lua脚本的同时清除该脚本中的内存呢?这是我的密码:Memory 清晰的记忆,memory,lua,Memory,Lua,我正在Lua内部制作一个简单的数字破解程序,我遇到了一个“堆栈溢出”错误(哦,很讽刺)。我不是100%的错误,因为当我用谷歌搜索它时,我得到的只是这个我已经使用了一段时间的网站。我想有一种方法来清除lua文件中的内存。这个程序运行数字非常快,它可以运行这些数字多达2147483647次,所以我假设这是一个内存问题。那么,有没有一种方法可以在运行lua脚本的同时清除该脚本中的内存呢?这是我的密码: num = 0 rand = math.random(2147483647) function Ma
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()
num=0
rand=math.random(2147483647)
函数Main()
打印(“请输入您的号码(0-2147483647)”)
ui=io.read(“*编号”)
循环()
结束
函数循环()
如果rand>ui和rand~=ui,那么
rand=math.random(0,用户界面)
num=num+1
打印(兰特)
结束
如果rand
编辑
感谢@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()
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()
num=0
rand=math.random(2147483647)
函数Main()
打印(“请输入您的号码(0-2147483647)”)
ui=io.read(“*编号”)
而(ui~=rand)呢
如果rand>ui和rand~=ui,那么
rand=math.random(0,用户界面)
num=num+1
打印(兰特)
结束
如果rand
感谢@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()
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()
num=0
rand=math.random(2147483647)
函数Main()
打印(“请输入您的号码(0-2147483647)”)
ui=io.read(“*编号”)
而(ui~=rand)呢
如果rand>ui和rand~=ui,那么
rand=math.random(0,用户界面)
num=num+1
打印(兰特)
结束
如果rand
感谢@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()
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()
num=0
rand=math.random(2147483647)
函数Main()
打印(“请输入您的号码(0-2147483647)”)
ui=io.read(“*编号”)
而(ui~=rand)呢
如果rand>ui和rand~=ui,那么
rand=math.random(0,用户界面)
num=num+1
打印(兰特)
结束
如果rand
您只需不断地调用loop()。。。最终,您将溢出堆栈。为什么首先必须是递归的?while
循环不是更有效吗?它一直在调用loop()。因此,所有这些调用都设置为堆栈。随着时间的推移,它会泛滥。因此,堆栈溢出。您应该尝试查找有关堆栈与堆的一些信息。谢谢你们两位:D我让我的代码工作了,现在我可以整天盯着滚动的数字看,谢谢:D注意,你不必重写整个代码作为一个while循环来解决这个问题。Lua有适当的尾部调用(),因此您可以将对loop()
的递归调用替换为return loop()
。。。最终,您将溢出堆栈。为什么首先必须是递归的?while
循环不是更有效吗?它一直在调用loop()。因此,所有这些调用都设置为堆栈。随着时间的推移,它会泛滥。因此,堆栈溢出。您应该尝试查找有关堆栈与堆的一些信息。谢谢你们两位:D我让我的代码工作了,现在我可以整天盯着滚动的数字看,谢谢:D注意,你不必重写整个代码作为一个while循环来解决这个问题。Lua有适当的尾部调用(),因此您可以将对loop()
的递归调用替换为return loop()
。我认为这里的标题有点误导