Чтобы избежать проблем с выделением памяти при работе с библиотекой Qt, рекомендуется:
- Использовать указатель this. 1 При создании объектов нужно указывать, что текущий объект является их родителем. 1 Это создаст иерархию объектов, и при удалении родительского объекта дочерние будут автоматически уничтожены. 1
- Сокращать размер участков кода. 4 Стоит разбивать код на короткие и логически ясные методы с хорошими именами. 4
- Использовать умные указатели. 15 Например, std::sharedptr и std::uniqueptr следят за тем, используется ли переменная, и если нет — очищают память. 5
- Не перевыделять память в процессе работы. 5 Например, на каждой итерации цикла нужно выделять объекты и удалять их сразу после использования внутри итерации. 5
Также можно пересбить Qt с оптимизацией по размеру и отключить С++ exceptions, чтобы уменьшить размер потребляемой памяти. 2