test2和test1是两指针,所指的地址是不同的,so test2!= test1
test2和test1所指的东东是一样的,so strcmp(test2, test) == 0 addoil 
:-)

解决方案 »

  1.   

    呵呵,你这段程序大有问题:1)首先,test 是一个指针(char *),sizeof test 结果是 4;strcpy(test2, m_s) 的结果是不可预料的,可能使程序崩溃或导致其他奇怪的问题;正确的写法是:
    test2 = new char[strlen(test) + 1];

    test2 = new char[m_s.GetLength() + 1];
    注意:多分配的 1 各字节是为 '\0' 保留的。
    2)如果你动态分配内存的话,test2 当然不等于 test;你在进行指针比较,即内存地址的比较。
    3)真难想象你的程序能运行到 strcpy(test2, m_s) 而没有死掉。
    4)别忘了写上:delete[] test2;