Função da biblioteca C - realloc ()
Descrição
A função da biblioteca C void *realloc(void *ptr, size_t size) tenta redimensionar o bloco de memória apontado por ptr que foi alocado anteriormente com uma chamada para malloc ou calloc.
Declaração
A seguir está a declaração da função realloc ().
void *realloc(void *ptr, size_t size)
Parâmetros
ptr- Este é o ponteiro para um bloco de memória previamente alocado com malloc, calloc ou realloc para ser realocado. Se for NULL, um novo bloco é alocado e um ponteiro para ele é retornado pela função.
size- Este é o novo tamanho do bloco de memória, em bytes. Se for 0 e ptr apontar para um bloco de memória existente, o bloco de memória apontado por ptr será desalocado e um ponteiro NULL será retornado.
Valor de retorno
Esta função retorna um ponteiro para a memória recém-alocada ou NULL se a solicitação falhar.
Exemplo
O exemplo a seguir mostra o uso da função realloc ().
#include <stdio.h>
#include <stdlib.h>
int main () {
char *str;
/* Initial memory allocation */
str = (char *) malloc(15);
strcpy(str, "tutorialspoint");
printf("String = %s, Address = %u\n", str, str);
/* Reallocating memory */
str = (char *) realloc(str, 25);
strcat(str, ".com");
printf("String = %s, Address = %u\n", str, str);
free(str);
return(0);
}
Vamos compilar e executar o programa acima que produzirá o seguinte resultado -
String = tutorialspoint, Address = 355090448
String = tutorialspoint.com, Address = 355090448