3
A
回答
1
沒有,有沒有真正使用到離開它設置爲原始值,除了向人們展示如何無能處於:-)
它遵循你應該知道的C在傳統編寫代碼你在做什麼。使C編譯器將指針釋放爲NULL的代價在C日期內被認爲過高,並且這已轉到C++並使用delete
。如果你編碼正確,那麼讓編譯器將指針設置爲NULL是很浪費的,因爲你要麼將它設置爲別的,要麼不再使用它。
如果你真的想使你的代碼更安全,你會做這樣的事情(在C):
void myFree (void **pMem) {
free (**pMem);
*pMem = NULL;
}
myFree (&x);
,而不是隻:
free (x);
但是,如果你」重新進入這個層次(並且引入這樣一種憎惡),只需切換到Java並完成它就可以完成,那麼你根本不必關心手動內存管理。
+0
或使用智能指針。 :) – GManNickG 2010-10-01 03:32:33
6
C++完全按照您的指示進行操作。您沒有將指針設置爲空,您刪除了指針指向的內存。
如果您不需要,爲什麼要浪費將其設置爲空(出於性能原因)的額外步驟?
5
如果它是一個const指針呢?
相關問題
- 1. 刪除指針並將指針設置爲NULL有什麼區別?
- 2. 爲什麼刪除操作符操作符不會刪除NodeList類的屬性?
- 3. 爲什麼移動一個指針變量不會將它設置爲null?
- 4. 在刪除之前將指針設置爲NULL
- 5. 刪除指針但不爲NULL
- 6. 爲什麼我的指針不是NULL?
- 7. 爲什麼不能使用NULL指針?
- 8. 爲什麼指令不會設置類?
- 9. 爲什麼rails'update_attributes將param設置爲null?
- 10. 爲什麼在Valgrind中將指針設置爲NULL給出錯誤/警告?
- 11. 如何在C中將結構指針設置爲NULL?
- 12. C++:爲什麼不是像刪除指針那樣設計的析構函數?
- 13. 設置stuct中的指針爲null
- 14. 爲什麼不將此路線設置爲默認操作?
- 15. 爲什麼不從null中刪除GameObjects?
- 16. 將指針設置爲contenteditable
- 17. 爲什麼這個C函數將一個指針指針作爲參數?
- 18. 爲什麼取消所有操作不會刪除所有操作?
- 19. 爲什麼我會將「null」作爲輸出字符串? Java
- 20. C++使用操作符刪除自動(堆棧)指針
- 21. 不會刪除指針
- 22. 當我將它們傳遞給方法時,爲什麼非NULL指針看起來會轉換爲NULL? (C++)
- 23. .h中的指針是否會自動設置爲NULL?
- 24. 爲什麼在列上設置鍵約束會從中刪除「NOT NULL」(MySQL)?
- 25. 爲什麼2個NULL指針不計算爲false?
- 26. 爲什麼不能在組件中刪除指針?
- 27. 爲什麼刪除指向指針向量的指針會導致指針無效?
- 28. ++操作符在指針中的行爲
- 29. C將指針指向NULL
- 30. 爲什麼指向NULL-charater的指針未轉換爲false
[爲什麼不刪除將指針設置爲NULL?](http://stackoverflow.com/questions/704466/why-doesnt-delete-set-the-pointer-to-null)的精確副本 – 2010-10-01 03:00:53
糟糕。沒有看到。 – Vanuan 2010-10-01 03:02:35
另請參閱http://stackoverflow.com/questions/1931126/is-it-good-practice-to-null-a-pointer-after-deleting-it – 2010-10-01 03:17:36