//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'
为什么???

解决方案 »

  1.   

    char index[1];
    这个有问题,空间不够。需要一个0放在字符串的最后面,所以至少应该是2。
      

  2.   

    a和a的index分别是怎么定义的?是不是已经被释放了?
      

  3.   

    a->index 是怎么定义的
    你同样用
    AfxMessageBox()显示的吗?
      

  4.   

    m_List.AddTail((CObject*)(&a)); //需要放入地址,不是放入对象。
    另外,如果a是局部对象,则函数返回后对象指针不再有效。这种情况下可用new分配a的空间:
    CA *pa = new CA ;
    m_List.AddTail( pa ) ;