我想用C語言封裝一個與MySQL的接口函數庫,提供connect,query,close三個接口。connect返回一個MYSQL變量供query和close使用。但是不希望調用我函數的人不需要再關心MySQL的東西,包括頭文件。也就是說調用我函數的人不需要關心我的函數使用的是什么樣的數據庫。它只需要按照我的函數接口調用我的函數就可以了?,F在遇到的一個問題就是我的connect函數定義為void *connect(char *host,char *pwd),在函數內部將連接好的MYSQL 類型變量強制轉化成void *返回:return (void *)&mysql; 然后,在query(void *mysql,...)函數和void close(void *mysql)中想將void *在強制轉換到MYSQL,然后再對這個MYSQL連接進行操作。這時,程序core了。部分源碼如下:void *connect_to_db(){ MYSQL_CONN confMysql; char sql[256]; char err[256]; char ret = 0; if(!mysql_init(&confMysql)) { printf("Initial MYSQL failed\n"); return NULL; } if(!mysql_real_connect(&confMysql,"localhost","root",NULL,"commconf",0,NULL,0)) { printf("Can't connect to mysql server\n"); return NULL; } return (void*)&confMysql;}void close_db_connect(void *conn){ MYSQL *mysql; mysql_init(mysql); mysql = (MYSQL *)conn; mysql_close(mysql); if (mysql_errno(mysql)) { printf("Close connect error:%s\n",mysql_error(mysql)); }}int main(){ void *db; db = connect_to_db("localhost","root"); if (!db) { printf("Connect to mysql error\n"); return -1; } close_db_connect(db); return 0;}程序最終在mysql_close(mysql)這一行coredump了。請各位大蝦指教,這到底是為什么?該如何做?