Безопасно ли удалять нулевой указатель?
И это хороший стиль кодирования?
make_shared(C ++ 11) и make_unique(C ++ 14) программа должна содержать нуль в newиdelete
newили delete. Классы, разработанные для управления ресурсами, в которых стандартные компоненты не могут выполнять свою работу, могут, конечно, делать то, что им нужно, но дело в том, что они делают ужасные вещи с памятью, которой они управляют, а не с кодом конечного пользователя. Итак, создайте свой собственный класс библиотеки / помощника для do new/ deleteи используйте этот класс вместо них.
delete. Вместо этого используйте RAII . То есть, используйтеstd::vector<T> v(100);вместоT* p = new T[100];, используйте умные указатели, такие какunique_ptr<T>иshared_ptr<T>которые заботятся об удалении вместо необработанных указателей и т. Д.