vector的一个疑问
char name[10];
int id;
vector<char *> namelist;
vector<int> idlist;
/*检索数据库(略)*/
retcode = SQLFetch(hstmt);
while (retcode==SQL_SUCCESS||retcode==SQL_SUCCESS_WITH_INFO){
SQLGetData(hstmt, 1, SQL_C_LONG, &id, 10, &length);
SQLGetData(hstmt, 2, SQL_C_CHAR, name, 10, &length);
namelist.push_back(name);
idlist.pusu_back(id);
retcode = SQLFetch(hstmt);
}
for (int i=0;i<(int)namelist.size();i++)
cout<<namelist[i]<<"->"<<idlist[i]<<endl;
结果是,namelist里的数据都是最后一条数据,而idlist里的数据却是真实数据,这是为什么呢?难道int数据类型可以自动分配空间,而char *类型数据必须用new char?