Форум программистов, компьютерный форум, киберфорум
Наши страницы

C для начинающих

Войти
Регистрация
Восстановить пароль
 
Rexer
164 / 163 / 20
Регистрация: 10.10.2010
Сообщений: 725
#1

Почему не рекомендуется использовать realloc() - C (СИ)

17.11.2012, 15:57. Просмотров 598. Ответов 3
Метки нет (Все метки)

Недавно прочитал,что многие(в том числе и Александреску) не рекомендуют использовать функцию realloc();
Но почему там написано не было,в гугле тоже ничего обстоятельного не нашел.
Может быть вы подскажете,чем так плоха данная функция?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.11.2012, 15:57
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Почему не рекомендуется использовать realloc() (C (СИ)):

Как правильно использовать realloc - C (СИ)
Вот: struct book { .... .... } bookData; void write2 () {

Почему нежелательно использовать printf с одним аргументом? - C (СИ)
Изучаю Си по книге. В главе "Безопасное программирование на С" написано, что нежелательно использовать printf с одним аргументом. ...

Почему в visual studio не могу использовать тип _Bool? - C (СИ)
если как я понял C++ полностью работает с кодом C.

Функция realloc - C (СИ)
Есть такой фрагмент кода: /* поиск отрицательных элементов и их размещение в конце массива*/ int k = N - 1, iotr; ...

realloc vs (malloc + memset) - C (СИ)
На одном форуме мне сказали, что realloc работает чуть ли не в полтора раза медленнее связки malloc + memset. Вот решил проверить (и...

Не работает функция realloc() - C (СИ)
Есть такое задание : Write a program, in which define such functions: - a function that allocates memory to the int vector of a...

3
OhMyGodSoLong
~ Эврика! ~
1244 / 993 / 42
Регистрация: 24.07.2012
Сообщений: 2,002
17.11.2012, 16:12 #2
Вы точно уверены, что Александреску говорил про Си, а не Си++? В Си++ да, не стоит, потому что она 1) не обязательно сочетается с new/delete на низком уровне; 2) не вызывает конструкторы/деструкторы.
1
Rexer
164 / 163 / 20
Регистрация: 10.10.2010
Сообщений: 725
17.11.2012, 16:17  [ТС] #3
А в Си выходит все нормально?
Как вы думаете,использование malloc+free+malloc намного менее эффективно,чем realloc?
0
Somebody
2791 / 1602 / 148
Регистрация: 03.12.2007
Сообщений: 4,200
Завершенные тесты: 1
17.11.2012, 16:37 #4
Цитата Сообщение от Rexer Посмотреть сообщение
Как вы думаете,использование malloc+free+malloc намного менее эффективно,чем realloc?
Если менеджер памяти не изменит размер без перевыделения памяти, то то же самое и получится. Если же изменит, тогда ему не придётся копировать все данные из старого места в новое.
1
17.11.2012, 16:37
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.11.2012, 16:37
Привет! Вот еще темы с ответами:

Освобождает ли realloc память? - C (СИ)
Вот у нас есть стандартная функция void * realloc( void * ptrmem, size_t size ) Как известно, при перераспределении блока памяти, он...

Перераспределение памяти, realloc - C (СИ)
Есть код, который считывает из файла слова и записывает их в динамическую записную книжку. Всё работает сначала нормально. Ошибка возникает...

Перевыделение памяти realloc - C (СИ)
Есть двумерный массив char **inpWords, в который я добавляю слова из файла, отсеивая пробельные символы. из файла считываю посимвольно....

Realloc внутри функции - C (СИ)
Проблема заключается в следующем: Когда я первый раз попадаю в функцию addItem и делаю в ней realloc указателя на структуру, а потом еще...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.