我想在C代码中使用MySQL,但是在从函数返回结果时遇到了问题。我已经定义了一个如下的函数(conn是一个正确设置的全局连接):
int _mysql_query(const char *query, MYSQL_RES *result){
int num_rows=0;
if (pthread_mutex_lock(&mysqlmutex)==0){
if (!mysql_query(conn,query)){
result=mysql_store_result(conn);
if (result!=NULL) num_rows=mysql_num_rows(result);
}
if (pthread_mutex_unlock(&mysqlmutex)!=0){
error("Error unlocking mysql mutex");
}
}else{
error("Error locking mysql mutex!");
}
return num_rows;
}
当我调用 mentione 函数时:
MYSQL_RES *tasks;
if (_mysql_query(query,tasks)>0){
MYSQL_ROW row;
while ((row=mysql_fetch_row(tasks))!=NULL){
printf("%s\n",row[0]);
}
}
mysql_free_result(tasks);
我在执行mysql_fetch_row(tasks)时遇到了分段错误。为什么会出现这种情况?谢谢。