Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Последние темы форума

Показать новые сообщения »

Почтовая рассылка

Подписчиков: 11650
Последний выпуск: 19.06.2015

realloc

[ Оглавление ]
               REALLOC
            
            #include <malloc.h>    требуется только для объявления
                                   функции
            
            char *realloc(ptr,size);
            char *ptr;             указатель  на ранее захваченный
                                   блок памяти
            unsigned size;         новый размер в байтах
            
               Описание.
            
               Функция realloc изменяет размер  ранее  захваченного  блока
         памяти. Аргумент ptr указывает на начало блока. Аргумент size за-
         дает новый размер блока в байтах. Содержимое блока не изменяется.
         Аргумент  ptr  может указывать на блок, который должен быть осво-
         божден прежде,  чем  последуют  вызовы  calloc,  halloc,  malloc,
         realloc.
            
               Возвращаемое значение.
            
               Функция  realloc возвращает char-указатель на перезахвачен-
         ный блок памяти. Блок может быть передвинут, если его размеры из-
         менены, поэтому аргумент ptr для функции realloc  не  обязательно
         должен быть таким же, как и возвращаемое значение.
               Возвращается значение NULL, если памяти недостаточно, чтобы
         расширить  блок к заданному размеру. Если это происходит, то пер-
         воначальный блок освобождается.
               В памяти, на которую указывает возвращаемое  значение,  га-
         рантировано  выравнивание для хранения любого типа объекта. Чтобы
         получить указатель на тип, отличный от char, используется  преоб-
         разователь типа возвращаемого значения.
               См.также caloc, free, halloc, malloc.
         
            
               Пример:
           
            #include <malloc.h>
            #include <stdio.h>
            
            char *alloc;
            
            /*  выбирает  достаточно  большое  пространство для 50
            символов */
            
            alloc=malloc(50*sizeof(char));
            .
            .
            .
            
               /* перезахватывает блок, который содержит 100 символов */
            if (alloc != NULL)
               alloc=realoc(alloc,100*sizeof(char));
         
               

Оставить комментарий

Комментарий:
можно использовать BB-коды
Максимальная длина комментария - 4000 символов.
 

Комментарии

1.
Аноним
+2 / -0
Мне нравитсяМне не нравится
8 сентября 2005, 12:31:40
Все правильно. У нее возврат такой-же как и у malloc.
char *dres;
для начала неплохо бы выделить мамять под указатель, а то непятно что вообще собираемся расшириить

dress=(char *) malloc(10);

после этого realloc надо указать тип возвращаемого указателя в скобках. В нашем случае char

dres = (char *) realloc (dres , 20);
итог: вместо 10 байт мы имеем 20 байт с сохраненной в первых 10-ти инфой.
2.
Аноним
Мне нравитсяМне не нравится
20 марта 2005, 12:26:25
char *dres;

dres = realloc (dres , size * sizeof(char));
error C2440: '=' : cannot convert from 'void *' to 'char *'
возвращает не char-указатель а void -указатель
Return Value

realloc returns a VOID pointer to the reallocated (and possibly moved) memory block

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог