3
這是我試圖運行的代碼。它編譯得很好,直到昨天工作很好。爲什麼我得到一個分段錯誤(核心轉儲)?
#include <my_global.h>
#include <mysql.h>
int main(int argc, char **argv)
{
MYSQL *conn;
MYSQL_RES *result;
MYSQL_ROW row;
int num_fields;
int i;
conn = mysql_init(NULL);
mysql_real_connect(conn, "hostname", "username", "password", "database_name", 0, NULL, 0);
mysql_query(conn, "SELECT * FROM tabletest");
result = mysql_store_result(conn);
num_fields = mysql_num_fields(result);
while ((row = mysql_fetch_row(result)))
{
for(i = 0; i < num_fields; i++)
{
printf("%s ", row[i] ? row[i] : "NULL");
}
printf("\n");
}
mysql_free_result(result);
mysql_close(conn);
}
注意,對於mysql_real_connect()
的參數是通用這裏的隱私,但就像我說的,昨天的工作。當我試圖在編譯成功後運行代碼時,我得到:
Segmentation fault (core dumped)
「它昨天工作」不是一個很好的藉口「我不檢查我的mysql API調用的結果」。添加錯誤檢查,並縮小您的搜索到有問題的函數調用。 – paddy
是完整的錯誤跟蹤? –
和回溯? –