C++ не имеет сборщика мусора. Мы можем добавить собственную реализацию сборщика мусора, но это не всегда возможно. Поэтому, если мы не будем правильно управлять памятью, наша программа может рухнуть после некоторого времени работы. Назначение большого количества автоматических переменных, вызовы по значению и вызовы вложенных функций приводят к увеличению потребления памяти стека. Также выделение памяти в куче без ее удаления вызывает утечку памяти. Даже если мы удалим неиспользуемую память в куче, это может привести к фрагментации памяти. Когда куча или стек переполняются, программа аварийно завершает работу.

В большинстве встроенных систем размер кучи и стека очень ограничен. Также очень часто требуется запускать устройство непрерывно в течение длительного времени. Он может работать дни, месяцы или даже годы без остановки. Поэтому, если наша программа дает утечку или фрагментирует память даже немного, то со временем она накапливается, и программа дает сбой. Программа может рухнуть через несколько дней или даже месяцев. В таком случае очень сложно выяснить, что вызывает сбой. Сторожевой таймер может восстановить систему, перезапустив ее, но в этом случае система может быть остановлена ​​на некоторое время, и некоторые данные будут потеряны. Поэтому очень важно заранее проверить, есть ли в программе утечка или фрагментация памяти. В области встроенных систем управление памятью необходимо, если требуется, чтобы программа работала в течение длительного времени. Также управление памятью необходимо для эффективности во всей платформе, если нет сборщика мусора.