如果要改寫這個是這樣:
#define NUM_ROWS 500;
#define NUM_COLS 9;
char **myData = NULL;
char *tableData = NULL;
int i;
int r;
myData = malloc(sizeof(char *) * NUM_ROWS);
if (!myData)
return; /*bad return from malloc*/
tableData = malloc(sizeof(char) * NUM_ROWS);
if (!tableData)
return; /*bad return from malloc*/
for (i = 0; i < NUM_ROWS; i++)
{
myData[i] = malloc(sizeof(char) * NUM_COLS);
if (!myData[i])
return; /*bad return from malloc*/
}
你可以這樣調用newCallBack()這樣,如果你只是想訪問數據(myData的,表資料,並[R):
/*prototype*/
void newCallBack(sqlite3 *db, char** mdat, char* tdat, int r);
/*call*/
newCallBack(db, myData, tableData, r);
或者這個,如果你希望能夠修改什麼VA RS myData的並表資料點和[R的價值:
/*prototype*/
void newCallBack(sqlite3 *db, char ***mdat, char **tdat, int *r);
/*call*/
newCallBack(db, &myData, &tableData, &r);
什麼是編譯器告訴你嗎? – MSN 2009-02-09 17:41:13
mdat [r] [0] = ptr_f; //非法索引,不允許間接。然而,當這是主要的,不是一個問題。 (//從malloc返回的指針\t char * ptr_f;) – 2009-02-09 17:44:46