cichaqiu4015 2017-05-11 12:04 采纳率: 0%
浏览 1126

用delete删除指针时,在VC++6.0中无法运行,在Visual studio中却可以正常使用

图片说明
我编写了一段程序,中间用到了如下分配指针和删除指针的代码。在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];
        }
    }

  • 写回答

1条回答 默认 最新

  • 关注

    有没有可能是你重复delete

    评论

报告相同问题?