可以在下面的程序中刪除空指針。在分配原始類型後刪除空指針
class Sample
{
public:
int intVal;
float floatVal;
};
main() {
Sample *samObj = new Sample();
void *vPtr = samObj;
delete vPtr;
}
這只是我寫的一個示例程序。實際上,在我的項目中,我除了做類似的事情之外別無他法。這個類似的代碼在.h接口文件中,當我包含這個文件並編譯其他組件時,編譯器會給出一個警告消息,因爲「警告:刪除'void *'是未定義的」,但是我懷疑是因爲我已經分配了void使用Sample對象類型的指針,刪除這個指針是否安全?
可能在這裏找到答案http://stackoverflow.com/questions/941832/is-it-safe-to-delete-a-void-pointer – 2013-03-26 04:47:35
在您的示例代碼中,您並未刪除'vPtr',你正在刪除'samObj',這很好。 – 2013-03-26 04:48:45
你究竟想要完成什麼?只要刪除'samObj','vPtr'就沒有用,因爲你已經有效地刪除了它。 – Mysticial 2013-03-26 04:52:25