如何确定是否释放缓冲区

时间:2014-12-09 08:46:02

标签: c++ memory allocation delete-operator

我使用new来分配缓冲区,如下所示:

    BYTE *p;

    p = new BYTE[20];


    ...

    delete p;

删除p后,如果我没有为p分配NULL,是否有办法确定它是否已被释放?

1 个答案:

答案 0 :(得分:1)

你无法确定,这是你通常依赖更高级机制来处理内存的主要原因之一,例如智能指针(shared_ptrunique_ptr等),或者你的情况而不是std::vector,以保证没有双delete,忘记delete或其他在undefined behavior土地上启动你的程序的令人讨厌的错误来处理原始记忆。