我编写了一段程序,中间用到了如下分配指针和删除指针的代码。在visual sudio中,程序可以正确运行。同样的程序,在VC++6.0,也可以运行,但运行到delete的代码部分就会弹出如下报警窗口,请问这是什么原因导致的呢?
for (int i = 0; i < 10; i++)//分配Tool内存
{
Tool[i].file = new char[50];
Tool[i].name = new char[5];
for (int j = 0; j < 5000; j++)
{
Tool[i].p_tri[j] = new TRIANGLE;
for (int k = 0; k < 3; k++)
{
Tool[i].p_tri[j]->p_pnt[k] = new POINT3D;
}
}
}
char *t[10], *n[10];
for (int a = 0; a < 10; a++)
{
t[a] = Tool[a].file;
n[a] = Tool[a].name;
}
for (int i = 0; i < 10; i++)//删除内存,如下代码在VC++6.0中运行后弹出警告窗口
{
delete[] t[i];
delete[] n[i];
for (int j = 0; j < 5000; j++)
{
for (int k = 0; k < 3; k++)
{
delete Tool[i].p_tri[j]->p_pnt[k];
}
delete Tool[i].p_tri[j];
}
}