0

我正在尝试将我的 sqlite 数据库传递给一个函数,然后再传递给另一个函数。这是我的代码。

//database Name
// Create a handle for database connection, create a pointer to sqlite3
sqlite3 *dataDB;

//I send it through to the function here
// Execute the query for creating table
retval = sqlite3_exec(dataDB,create_students,0,0,0);

我的原型:

int readInFiles(sqlite3 ** dataDB);
void addCourse(sqlite3 ** dataDB, struct course,int k);

readInFiles函数内部调用:

addCourse(&dataDB,deg,k);

这是我的错误:

"database.c", line 50: warning: argument #1 is incompatible with prototype:
      prototype: pointer to pointer to struct sqlite3 {} : "database.h", line 51
4

3 回答 3

1

From inside readInFiles,已经dataDB是类型sqlite3**,所以你需要调用:

addCourse(dataDB,deg,k);
于 2012-04-29T13:15:30.583 回答
0

为什么不简单地传递指针本身?和函数可能不需要写入指针,只需要写入readInFiles对象。addCoursesqlite3

sqlite3 *db;

retval = sqlite3_exec(db, create_students, 0, 0, 0);

int readInFiles(sqlite3 *db);
void addCourse(sqlite3 *db, struct course, int k);

addCourse(db, deg, k);

此外,dataDB(数据库)有点多余:)

于 2012-04-29T13:18:24.460 回答
0

你可以试试 addCourse(dataDB, deg, k); 我不明白,你想在 readInFile 中初始化 db 吗?如果你只使用 db,你可以像 readInFile(sqlite3* dataDB) 和 addCourse(sqlite* dataDB) 一样声明

于 2012-04-29T13:25:02.383 回答