私はmysqlデータベースから値を取得していますが、返された各行で整理したいと思います。Cの動的配列のセグメンテーションフォールト
MYSQL * con;
mysql_connect(&con); //connect to mysql database and set handle to con variable.
MYSQL_ROW row;
MYSQL_RES * result;
int num_fields, i;
mysql_query(con, "select name,etc,state from db.tbl");
result = mysql_store_result (con);
num_fields = mysql_num_fields (result);
person tempdata;
person personlist[num_fields * sizeof(person)]; //the size if the problem, I believe...
while((row = mysql_fetch_row (result))) {
tempdata.name = row[0];
tempdata.etc = row[1];
tenpdata.state = atoi(row[2]);
personlist[i++] = tempdata; // the error line
}
mysql_free_result (result);
mysql_close (con);
が、それはこの問題を解決する方法Segmentation fault
を返します。
typedef struct
{
char* name;
char* etc;
int state;
} person;
とMySQL:ここに私の構造体は、(例のみ)ですか?前もって感謝します。
デバッガ(gdbなど)を使用して、セグメンテーション違反が発生する行を探してみます。 – Zeta
セグメンテーションフォルトはどこで発生しますか?テストセットアップ全体を複製することはできませんので、提供できるすべての情報はあなたを助けるだけです。 – tbert