抱歉,刚才用了自动排版,都乱了,只好重发 请教一个Lua的问题,麻烦你了。 我要从C的函数里给Lua脚本返回一个数组,我是这么写的: 『More Lines』
谢谢两位的回复。但是看起来不是这些原因: 1.堆栈肯定没有溢出,栈里始终不过2个元素而以:table和value,执行lua_rawseti 之后就只有table一个元素了 『More Lines』- 回复 | (1226) | jason | 2006-08-17 08:41:43
use luaL_openlibs(L) replace luaopen_* - 回复 | (1297) | neverSeen | 2006-11-03 01:00:33
use luaL_openlibs(L) replace luaopen_* - 回复 | (1296) | neverSeen | 2006-11-03 12:59:11
> 堆栈肯定没有溢出还是用lua_gettop(L)检查一下吧, 因为你在embed testext.Test() 之前的其他操作(luaopen_base(L), luaopen_table(L), etc.)也会导致栈的增长, 5.0.2默认的栈的大小是45, 不小心很容易超的.另外, 我刚才试了一下你的代码, 是可以正确打印的.FYI. - 回复 | (1227) | al_lea | 2006-08-17 11:16:11
用lua_gettop检查过的,的确是2或者1 而且Lua的手册上说,这里的L是临时分配的,所以它应该并没有跟luaopen_base共用一个L呀。 不知道为什么在我的机器上就不行,mail list上的人给的可能我都试演过了, 『More Lines』- 回复 | (1229) | jason | 2006-08-17 09:54:29
应该可以. 方便的话, 发份代码过来(abrash_han@163.com) thanks.- 回复 | (1230) | al_lea | 2006-08-18 07:58:23
你这几行代码没有错,但是我相信 lua 在这方面也没有 bug . 所以你需要检查别的方面导致的 bug 。例如 crt 不一致等等。
ps. lua 5.1 可以自定义内存分配器。 - 回复 | (1223) | 云风 | 2006-08-17 01:44:25
我是曾赠,请和我交个友吧?