【问题标题】:Pointer issues when using sqlite in an objective-c program在 Objective-C 程序中使用 sqlite 时的指针问题
【发布时间】:2009-01-28 21:37:17
【问题描述】:

当我尝试将其编译为 Objective-c 程序的一部分时,它会发出警告:
warning: passing argument 1 of 'sqlite3_close' from incompatible pointer type

sqlite3 *db;
sqlite3_open("~/Documents/testdb.sqlite", &db);
/*stuff*/
sqlite3_close(&db);

几乎所有其他使用&db 的函数调用都会出现几乎相同的错误。

【问题讨论】:

  • 好吧,我真的需要挖掘出那本 K&R 书籍,真正学习使用指针。

标签: c objective-c sqlite pointers warnings


【解决方案1】:

sqlite3_close 需要 sqlite3*,而不是 sqlite3**。所以去掉&符号,它应该可以编译。

【讨论】:

    【解决方案2】:

    我认为你不需要第二个&...如果这与普通 c 类似,你只需调用sqlite3_close(db);(从而将指针本身传递给它,而不是指针的地址。 ) 我相信sqlite3_open 电话会保持原样。

    【讨论】:

    • Objective-C 是 C 的严格超集。
    【解决方案3】:

    你应该只传入指针,而不是对它的引用:

    sqlite3_close(db);
    

    【讨论】:

      猜你喜欢
      • 2011-01-28
      • 1970-01-01
      • 2012-02-25
      • 2010-11-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多