假设如下定义的结构在数组中动态分配。为了安全地删除分配的结构,类型、标签和描述是否需要空终止?
struct operation_data
{
int number;
char* type;
char* label;
char* description;
}
operation *data=new operation_data[5];
for (int i=0; i<5; i++)
{
data[i].type=new char[250];
data[i].label=new char[250];
data[i].description=new char[250];
}
for (int i=0; i<5; i++)
{
if (data[i].type) delete[] data[i].type;
if (data[i].label) delete[] data[i].label;
if (data[i].description) delete[] data[i].description;
}
我的代码代表上面的代码片段。这导致在第二个删除语句中检测到堆损坏错误。请帮我纠正这个问题。