一个全局变量,是个字符指针 pStr在某个函数中通过 new 分配内存并赋给该指针函数退出后,其他函数能通过 pStr[i] 的方式来访问指针内容吗?new 分配的内存应该不是局部变量,退出函数后就注销的吧?

解决方案 »

  1.   

    不会的吧,我记得new和malloc是一样的,退出函数后,那个内存区域应该没有被释放,所以可以使用的,其实很简单,你new了之后,vc里面可以查看内存状态的,调试的时候按Alt+F6,,退出函数后,你再看看这块内存块是否是?? ?? ?? ??,问题不就解决了嘛。
      

  2.   

    函数退出后,其他函数能通过 pStr[i] 的方式来访问指针内容吗?
    //没问题,可以访问测试代码:
    CString* pTest;void SetTestVal()
    {
    pTest = new CString("test");
    }int _tmain(int argc, TCHAR* argv[], TCHAR* envp[])
    {

              //omit some codes
    //..............
    SetTestVal(); CString str1(*pTest); printf("%s\n", str1.GetBuffer(str1.GetLength()));         //delete pTest;
    return nRetCode;
    }打印结果:test