Будет ли многократно выделять массив символов в динамическом приводить к проблемам?

Псевдокод на C ++

char* data = new char[determine_size()];
// ... do some stuff with data
delete[] data;
// ... repeat process

Таким образом, в основном, данные каждый раз повторно выделяются в новый массив с различным размером. Хотя каждый раз предыдущее распределение всегда будет отменено первым.

Приведет ли это к фрагментации памяти?

Я не очень знаком с управлением памятью в C ++; мое внутреннее чувство говорит мне, что это не очень хорошая идея.

0

Решение

Ты спрашиваешь,

«Это приведет к фрагментации памяти?»

Хорошо выделение памяти есть необходимо для фрагментации, но это не так достаточно.

То есть это зависит, на многих вещах, в том числе шаблон распределения и диспетчер памяти.

Таким образом, как заявлено, вопрос действительно неопровержим.

Но еще можно дать хороший совет.

Не используйте сырые массивы и newиспользуйте вместо, например, std::vector а также std::string,

6

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]