В C ++ вы должны сами управлять распределением памяти, нет сборки мусора, которую вы забыли очистить, как в java / C #, и в любом другом современном языке.Если вы теряете след памяти, в лучшем случае она просочилась, в худшем случае вы продолжаете использовать ее, а что-то еще делает.Это трудная проблема для решения, очень немногие, если таковые вообще имеются, программисты C ++ понимают это правильно, поэтому для обхода этих проблем в C ++ выполняются умные указатели и другие сложные эзотерические приемы.@yi_H - это правильно, разберитесь с основами базового распределения памяти, чтобы вы знали, почему умные указатели являются такой хорошей идеей.
Без умных указателей, в то время как некоторые из приведенных выше ответов ускользнули от него "владение "является наиболее важной вещью, чтобы понять.Всякий раз, когда у вас есть указатель на блок памяти, вы должны знать, кому он принадлежит.Если вы им владеете, вы должны освободить его, прежде чем он выйдет за рамки или будет потерян.Если вы даете кому-то еще копию этого документа, убедитесь, что вы определили, кому он принадлежит, и когда владелец может / будет / должен освободить его.Если вы не можете сделать это, вы находитесь в шланге.Как правило, библиотеки C ++, как известно, плохо документируют это, поэтому при отсутствии четкой информации предположим, что она вам не принадлежит (не удаляйте ее и, возможно, не создайте утечку памяти), предпочитая ее удалять и создавать трудно обнаруживаемые дефекты.,Используйте Valgrind, чтобы найти утечки памяти в работающей программе.
Чтобы избежать худших ловушек, соблюдайте несколько простых правил.Используйте местных жителей и ссылки в предпочтении к куче (новый).При возврате выделенной памяти четко документируйте владение и жизненный цикл выделенной памяти.Избегайте копирования указателей в выделенную память, копируйте данные, где это возможно.Делая копии указателей, сделайте прицел как можно более коротким и коротким.Многое использование указателей делается (плохо) во имя эффективности - программа, которая работает медленно, гораздо эффективнее, чем программа, которая случайным образом выбрасывает дамп.
т.е. ограничивает использование ключевого слова "new".