Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/136.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 取消分配向量的wchar\u t*_C++_Vector_Wchar T_Memory Management - Fatal编程技术网

C++ 取消分配向量的wchar\u t*

C++ 取消分配向量的wchar\u t*,c++,vector,wchar-t,memory-management,C++,Vector,Wchar T,Memory Management,我有一个wchar\u t*向量,如下所示: std::vector<wchar_t*> myvector; 当我关闭程序时,我需要删除向量的分配内存,这样我就不会有内存泄漏,为此,我正在尝试这样做: for (std::vector<wchar_t*>::iterator it = myvector.begin(); it != myvector.end(); ++it) { delete [] *it; } for(std::vector::iterato

我有一个wchar\u t*向量,如下所示:

std::vector<wchar_t*> myvector;
当我关闭程序时,我需要删除向量的分配内存,这样我就不会有内存泄漏,为此,我正在尝试这样做:

for (std::vector<wchar_t*>::iterator it = myvector.begin(); it != myvector.end(); ++it)
{
    delete [] *it;
}
for(std::vector::iterator it=myvector.begin();it!=myvector.end();+it)
{
删除[]*它;
}
它可以编译,一切正常,但当需要释放内存时,我遇到了一个常规错误:

为什么??如何修复此问题?

使用此
myfunction(L“这是我的字符串”)不创建新字符串。它是一个常量字符串,存储在exe中的某个位置。由于您没有显式地
新建它,因此也不需要
删除它。
只能成对使用
new和delete
new[]和delete[]

使用这个
myfunction(L“这是我的字符串”)不创建新字符串。它是一个常量字符串,存储在exe中的某个位置。由于您没有显式地
新建它,因此也不需要
删除它。

只能成对使用
new和delete
new[]和delete[]

删除
您的
新内容
。您没有在任何地方直接或间接使用
new
,因此无需删除任何内容。正如Xeo所说,更好的解决方案是只使用
std::wstring
删除
您的
新内容
。您没有在任何地方直接或间接使用
new
,因此无需删除任何内容。正如Xeo所说,更好的解决方案是使用
std::wstring

您自己没有分配任何内存。如果您的代码中没有任何新的[],您也不需要任何删除[]。

您自己没有分配任何内存。如果您的代码中没有任何新的[],您也不需要删除[]。

您应该使用
std::wstring
来避免遇到此类问题。您应该使用
std::wstring
来避免遇到此类问题。
for (std::vector<wchar_t*>::iterator it = myvector.begin(); it != myvector.end(); ++it)
{
    delete [] *it;
}