//nAdapterIndex是1
char index[1];
itoa(nAdapterIndex,index,10);
AfxMessageBox(index);//这时候是1
strcpy(a->index,index); //a是一个自定义类的对象, CA a;
m_List.AddTail((CObject*)a); //把a放入CObList的对象m_List中,
//
使用时,再找到这个a->index 变成了'屯1'
为什么???
char index[1];
itoa(nAdapterIndex,index,10);
AfxMessageBox(index);//这时候是1
strcpy(a->index,index); //a是一个自定义类的对象, CA a;
m_List.AddTail((CObject*)a); //把a放入CObList的对象m_List中,
//
使用时,再找到这个a->index 变成了'屯1'
为什么???
这个有问题,空间不够。需要一个0放在字符串的最后面,所以至少应该是2。
你同样用
AfxMessageBox()显示的吗?
另外,如果a是局部对象,则函数返回后对象指针不再有效。这种情况下可用new分配a的空间:
CA *pa = new CA ;
m_List.AddTail( pa ) ;