0
我想拆分執行查詢。下面的myprepare函數打開數據庫連接並運行sqlite3_prepare_v2函數。在myprepare的作用域內執行sqlite3_open後,selectstmt和database將爲其分配有效地址。但是,一旦我從myprepare出來,他們的地址被擦除爲0x0。傳入變量的值不保留
sqlite3_stmt *selectstmt = nil;
sqlite3 *database = nil;
[anInstance myprepare:selectstmt theDatabase:database]; //assignments are fine inside here
//here, the above values will be 0x0
爲什麼selectstmt和database的值不保留在myprepare之外?
對於那些誰不想花5分鐘時間撓頭:「保留」在這個意義上並不是與內存管理有關,而應該是「變量中傳遞的值不被保留」。 – 2009-12-28 22:40:58