以下のように定義された構造体が配列に動的に割り当てられているとします。割り当てられた構造を安全に削除するには、タイプ、ラベル、および説明をnullで終了する必要がありますか?
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;
}
私のコードは上記のスニペットを表しています。これにより、2番目のdeleteステートメントでヒープ破損が検出されたというエラーが発生します。これを修正するのを手伝ってください。