我是一个总菜鸟所以这可能完全没有,但为什么
struct staff{
int id;
char lastdate[8];
char codeid[8];
};
在main中我从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
...
答案 0 :(得分:2)
你需要使lastdate
大到足以容纳日期的8个字符加上空终止符,所以结构应该是:
struct staff{
int id;
char lastdate[9];
char codeid[8];
};
你在数组外写字,导致未定义的行为。