我是个十足的傻瓜所以这可能是完全不可能的但是为什么
struct staff{
int id;
char lastdate[8];
char codeid[8];
};
我主要是从Mysql获取数据,并且:
...
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
...
最佳答案
您需要使lastdate
足够大,以容纳日期的8个字符和空结束符,因此结构应该是:
struct staff{
int id;
char lastdate[9];
char codeid[8];
};
您在数组外部写入,这会导致未定义的行为。