Проблемы с указателем при использовании sqlite в программе target-c - PullRequest
0 голосов
/ 29 января 2009

Когда я пытаюсь скомпилировать это как часть программы target-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.

Ответы [ 3 ]

2 голосов
/ 29 января 2009

sqlite3_close требует sqlite3*, а не sqlite3**. Так что бросьте амперсанд и он должен скомпилироваться.

1 голос
/ 29 января 2009

Не думаю, что вам нужен второй & ... Если это что-то вроде обычного c, вы просто хотите позвонить sqlite3_close(db); (тем самым передавая ему сам указатель, а не адрес указателя. Я полагаю, что вызов sqlite3_open останется без изменений.

1 голос
/ 29 января 2009

Вы должны просто передать указатель, а не ссылку на него:

sqlite3_close(db);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...