有一个类CTest;
CTest *p[10];
我在程序中不一定用到10个可能用到3个不定, 所以我在释放的时候用:
for (int k = 0;k<10;k++)
{
if (p[k])
{
delete p[k];
p = NULL;
} }
就会出错,我应该怎么做呢?

解决方案 »

  1.   

    动态增减的数组用CArray#include <afxtempl.h>CArray<CTest,CTest> testArray;
    testArray.SetSize(10);
    testArray.SetSize(3);//变成3个testArray.Add(...);

      

  2.   

    for (int k = 0;k<10;k++)
    {
    if (p[k])
    {
    delete p[k];
    p = NULL;//这里应该是p[k]=NULL;
    } }
      

  3.   

    同意楼上。你的程序循环中,p = NULL;这句干什么?把指向指针数组的指针都赋值为NULL,以下的循环肯定错,我记得。
      

  4.   

    在开头, 还要:
    for (int k = 0;k<10;k++)
    {
                p[k] = NULL ;
             }
      

  5.   

    数组的名字是一个常量,里面是数组的首址
    你试图用p=NULL;
    来修改常量当然会报错