stdlib.h

realloc

Описание

void * realloc( void *ptr, size_t size )

Функцията променя размера на вече заделен блок от памет. Паметта се сочи от указатиля ptr ако неговата стойност е NULL функцията е еквивалентна на malloc. Ако size е по голям от размера на текущия блок се заделя необходимата пемет и се добавя към съществуващия блок. Съдържанието на подадения блок не се променя. Ако size е по-малко от размера на подадения блок част от памметта се освобождава и се връща блок с зададените размери. При size равно на нула зададения блок се освобождава.

Параметри

void *ptr

Указател към блока чиито размери ще бъдат променяни.

size_t size

Новия размер на блока от памет.

Връщани стойности

Указател към новия блок от паммет.

Примери

от: adviser at cpp-examples dot com   Свали кода във файл
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. int main()
  5. {
  6.     char *ptr = NULL;
  7.     ptr = (char*)realloc(ptr, 10); //заделя 10 байта
  8.     for(int i=0; i<10; i++)
  9.         ptr[i] = `0` + i;
  10.     ptr[9] = 0;
  11.  
  12.     printf("%s", ptr); //012345678
  13.  
  14.     ptr = (char*)realloc(ptr, 5); //освобождава 5 байто от блока
  15.     ptr[4] = 0;
  16.    
  17.     printf("%s", ptr); //0123
  18.  
  19.     ptr = (char*)realloc(ptr, 0); //освобождава целия блок и връща NULL
  20.     return 0;
  21. }

Виж също

malloc - заделя памет
calloc - заделя парчета от памет
free - връща паметта на операционната система