TCHAR *数组的re-新是否会产生负面/不确定的影响?甚至也许不推荐?到目前为止,以下代码一直运行良好。需要输入。谢谢!
//e.g.
TCHAR *tc1 = new TCHAR[1];
// later:
//resize TCHARs
tc1 = new TCHAR[size1];
tc1[size1] = { L'\0' };
最佳答案
这是内存泄漏。您需要对由delete
调用创建的任何内容进行new
。如果这样做,一切正常:
//e.g.
TCHAR *tc1 = new TCHAR[1];
// later:
//resize TCHARs
delete [] tc1;
tc1 = new TCHAR[size1];
tc1[size1] = { L'\0' };
尽管没有关系,但最后一行写在分配的数组后面。那是,不是很好。但这与您的内存分配无关,这是一个错误。
如果使用字符串类,则可以避免很多此类情况。要么
std::string
,或者如果您正在使用MFC,CString
。关于c++ - 重新-'new' TCHAR *数组,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47952038/