0
で正しい方法で割り当てる配列である私は、私は、MySQLからデータを取っています、これは完全にオフになる場合もありますので、合計noobのだが、メインで、なぜ構造体
struct staff{
int id;
char lastdate[8];
char codeid[8];
};
:
...
while((row = mysql_fetch_row(confres)))
{
char *codeid = row[0];
char *maxdate = row[1];
info[i].id=i;
strcpy(info[i].codeid, codeid);
strcpy(info[i].lastdate, maxdate);
i++;
}
...
lastdateはYYYYMMDD形式で、codeidは文字列です。
配列を印刷するときに、なぜlastdateは正常ですが、codeidは文字列だけですか?
ID: 0
SHORT:
LAST DATE : 20170929
ID: 1
SHORT:
LAST DATE : 20170929
...
'codeid'が文字列の場合、' row [0] 'にも文字列を含める必要があります。したがって、 'char * codeid = row [0];の代わりに' char * codeid =&row [0]; 'を使用してください。 – Gaurav
それは私に警告を与えます:互換性のないポインタ型からの初期化[-Wincompatible-pointer-types] char * codeid =&row [0]; – Ommik
最後の日付のヌルターミネータのためのスペースは予約されておらず、バッファオーバーフローのために自分自身を設定して、文字列の長さをチェックしていません。 –