Различия между использованием перевыделения по сравнению со свободным-> malloc функции

Он уже делает это. Действительно. Он просто не записывает его. Не убежденный? Наблюдайте, что он проходит стандартный цикл разработки:

  • Запись часть кода
  • Компиляция это
  • Выполнение для наблюдения, что это делает
  • Запись следующая часть кода

, Шаг № 3 является тестом. Он уже делает тестирование, он просто делает это вручную. Задайте ему этот вопрос: "Как Вы знаете завтра, что код с сегодняшнего дня все еще работает?" Он ответит: "Это - такой небольшой объем кода!"

Спросите: "Как насчет следующей недели?"

, Когда у него не будет ответа, спросите: "Как хотели бы Вы Вашу программу говорить Вам, когда изменение повреждает что-то, что вчера работало?"

Это - то, о чем автоматическое поблочное тестирование - все.

34
задан Edison Gustavo Muenz 9 September 2009 в 18:20
поделиться

3 ответа

Преимущество заключается в том, что при перераспределении сохраняется содержимое памяти. С помощью free + malloc вам нужно будет сбросить данные в массиве.

26
ответ дан 27 November 2019 в 16:41
поделиться

Что ж, realloc может изменить размер блока на месте или выделить новый и скопировать столько, сколько поместится. Напротив, malloc и free вместе могут выделить только новый, и вам придется делать свое собственное копирование.

Откровенно говоря, realloc не так широко используется в наши дни, потому что он плохо работает с C ++. В результате у менеджеров памяти была тенденция не оптимизировать для этого.

7
ответ дан 27 November 2019 в 16:41
поделиться

«вместо использования функции free () перед повторным вызовом функции malloc ()»

Если вы освободите существующий массив, вы потеряете все его содержимое, поэтому не сможете » расти "массив в обычном смысле.

1
ответ дан 27 November 2019 в 16:41
поделиться
Другие вопросы по тегам:

Похожие вопросы: