释放c串数组
问题描述:
这里我有一个动态分配的c串数组。释放c串数组
什么是释放这样一个数组的正确方法?
需要单独释放每个元素
A
,如下面的代码所示?
谢谢。
#include <string.h>
int main()
{
const char** A = new const char*[3];
A[0] = (const char*)memcpy(new char[5], "str0", 5);
A[1] = (const char*)memcpy(new char[5], "str1", 5);
A[2] = (const char*)memcpy(new char[5], "str2", 5);
// Is this the proper way to free everything?
for (int i = 0; i < 3; ++i)
delete[] A[i];
delete[] A;
}
答
是的。只要每个new ...[]
与delete[] ...
匹配,一切都可以。
为什么不使用'std :: vector <:string>'并将内存管理留给标准库? – NathanOliver
只需使用'vector'。 –
'#include' - 然而你没有使用'std :: string'。这是定义'std :: string','std :: wstring'等的头文件。我不知道当你包含这个头文件时你还有什么期望。 –
PaulMcKenzie