不要返回函数里的临时变量的指针,不要这样用了。
最好自在函数里CString *aa = new CString 再 return (CString*)aa;
如果非要用数组,那就先new一个CString 的指针数组,再逐个new CString, 然后return.
最好自在函数里CString *aa = new CString 再 return (CString*)aa;
如果非要用数组,那就先new一个CString 的指针数组,再逐个new CString, 然后return.
^_^,谢谢
CString aa[10]={"1","2","3","4","5","6","7","8","9","0"};
cout<<(LPCTSTR)aa[0]<<endl; 这里是对的,打印出“1”
return (CString*)aa;
}在这个函数中数组aa[10]是局部变量,他的生存期只在本函数中,在函数外是无法访问他的内容的
所以你在函数外得到的地址中的内容是错误的,可以将aa[10]声明成全局变量或用new分配.
如:
CString aa[10]={"1","2","3","4","5","6","7","8","9","0"};
CString* test(){
cout<<(LPCTSTR)aa[0]<<endl; 这里是对的,打印出“1”
return (CString*)aa;
}
就OK了.
大概两三个月吧,太难了