我在debug模式下面用CCLOG在dealloc函数里面输出一些信息,目的就是要检查场景的dealloc方法在replaceScene的时候有没有被调用,按照子龙山人大哥的说法,如果场景切换的时候dealloc没有调用,说明你这个场景的内存有问题。有可能被某个对象retain了,其retainCount在replaceScene的时候没有减少到0,所以dealloc
*/ typedef union UTString { L_Umaxalign dummy; /* ensures maximum alignment for strings 确保字符串的最大对齐 */ TString tsv; } UTString; TString结构是Lua中表示字符串的主体结构。UTString 结构主要是为了确保TString结构占用固定大小的内存区域,以便计算实际字符串存储的位置。
Lua由标准C编写而成,几乎在所有操作系统和平台上都可以编译,运行。Lua并没有提供强大的库,这是由它...
lua_pushlstring :在栈顶放入长度为 len 的字符序列作为 lua 字符串对象 const char *lua_pushlstring (lua_State *L, const char *s, size_t len); 把指针 s 指向的长度为 len 的字符串压栈。 Lua 对这个字符串做一个内部副本(或是复用一个副本), 因此s 处的内存在函数返回后,可以释放掉或是立刻重...
// cpp void lua_pushnil(lua_State *L); void lua_pushboolean(lua_State *L, int bool); void lua_pushnumber(lua_State *L, lua_Number n); void lua_pushinteger(lua_State *L, lua_Integer n); void lua_pushlstring(lua_State *L, const char* s, size_t len); void lua_pushstring(lu...
void lua_pushlstring (lua_State *L,const char *s,size_t len) void lua_pushstring (lua_State *L,const char *s) void lua_pushnil (lua_State *L) void lua_pushcfunction (lua_State *L,lua_CFunction f) void lua_pushlightuserdata(lua_State *L,void *p) ...
lua_pushlstring(L, str + pos, l1 - pos); lua_rawseti(L, -2, ++idx); } break; } } return 1; } 然后按照惯例在strlib数组里的{NULL, NULL}之前添加: {"splitby", str_split}, 然后编译后,lua里便多了一个方法string.splitby。
Lua C API操作字符串主要包含两个操作:求子串(lua_pushlstring)和字符串拼接(lua_concat)。 例如,我们求一个字符串s的子串[i,j],它可以表示为: lua_pushlstring(L, s + i, j - i + 1); 1. 而lua_concat(L,n)则可以把当前栈顶的n个元素转换成字符串并拼接起来,最后把结果压入栈顶。
void lua_pushlstring (lua_State *L, const char *s, size_t len); 把指针s指向的长度为len的字符串压栈。 Lua 对这个字符串做一次内存拷贝(或是复用一个拷贝), 因此s处的内存在函数返回后,可以释放掉或是重用于其它用途。 字符串内可以保存有零字符。
lua_pushlstring# [-0, +1, e] const char *lua_pushlstring (lua_State *L, const char *s, size_t len); 把指针 s 指向的长度为 len 的字符串压栈。 Lua 对这个字符串做一个内部副本(或是复用一个副本), 因此 s 处的内存在函数返回后,可以释放掉或是立刻重用于其它用途。 字符串内可以是任意...