可能重复:
删除空指针是否安全?
假设我有一个new
分配给一个名为的类MyClass
,并且分配很简单:
MyClass *myClassPtr = new MyClass();
我存储对void*
我简单地说的列表的引用
myListOfPointers.add(static_cast<void*>(myClassPtr)); // this has to be void*
后来我释放内存而不是这样做:
delete myClassPtr
我用:
delete MyListOfPointer.get(0)
(假设 myClassPtr 引用是零索引。)另外,请注意它必须是void*
因为这个列表可以存储不同类型的指针,所以我不知道我要删除的指针类型:
所以我不能做任何事情:
delete static_cast<MyClass*>(MyListOfPointer.get(0))
这种方式会释放正确的内存大小吗?( sizeof(MyClass)
)?
注意:
我不是在寻找任何指向智能指针的答案。