#include <fstream>
int frees(char** &items)
{
if (items == NULL)
return 1;
int i = 0;
for (; items[i] != NULL; i++)
{
free(items[i]); items[i] = NULL;
}
if (items != NULL)
{
free(items); items = NULL;
}
return 0;
}
int frees1(char**& items)
{
if (items == NULL)
return 1;
int i = 0;
for (; items[i] != NULL; i++)
{
delete[] items[i]; items[i] = NULL;
}
if (items != NULL)
{
delete[] items; items = NULL;
}
return 0;
}
int main()
{
char**results = NULL;
results = (char**)calloc(4,sizeof(char*));
results[0] = (char*)calloc(64, sizeof(char));
results[1] = (char*)calloc(64, sizeof(char));
results[2] = (char*)calloc(64, sizeof(char));
results[3] = NULL;
frees(results);
char**field = new char*[4];
field[0] = new char[64];
field[1] = new char[64];
field[2] = new char[64];
field[3] = NULL;
frees1(field);
return 0;
}
char* field[4] ;//也可以这样开辟,移步其他开辟形式

本文详细介绍了在C++中如何使用free和delete[]来释放动态分配的内存,包括通过calloc和new分配的字符指针数组。展示了两种不同的内存分配方式,并提供了相应的释放内存的函数实现。

1489

被折叠的 条评论
为什么被折叠?



