Função realloc () na biblioteca C: como usar? Aprenda com o exemplo

Índice:

Anonim

O que é realloc ()?

realloc () é uma função da biblioteca C para adicionar mais tamanho de memória a blocos de memória já alocados. O objetivo de realocar em C é expandir os blocos de memória atuais, deixando o conteúdo original como está. A função realloc () ajuda a reduzir o tamanho da memória alocada anteriormente pelas funções malloc ou calloc. realloc significa realocação de memória.

Sintaxe para realocação em C

ptr = realloc (ptr,newsize);

A instrução acima aloca um novo espaço de memória com um tamanho especificado na variável newsize. Após executar a função, o ponteiro retornará ao primeiro byte do bloco de memória. O novo tamanho pode ser maior ou menor do que a memória anterior. Não podemos ter certeza de que se o bloco recém-alocado apontará para a mesma localização do bloco de memória anterior. A função realloc em C copiará todos os dados anteriores na nova região. Isso garante que os dados permanecerão seguros.

Por exemplo:

#include int main () {char *ptr;ptr = (char *) malloc(10);strcpy(ptr, "Programming");printf(" %s, Address = %u\n", ptr, ptr);ptr = (char *) realloc(ptr, 20); //ptr is reallocated with new sizestrcat(ptr, " In 'C'");printf(" %s, Address = %u\n", ptr, ptr);free(ptr);return 0;} 

Como usar realloc ()

O programa abaixo em C demonstra como usar realocar em C para realocar a memória.

#include #include int main() {int i, * ptr, sum = 0;ptr = malloc(100);if (ptr == NULL) {printf("Error! memory not allocated.");exit(0);}ptr = realloc(ptr,500);if(ptr != NULL)printf("Memory created successfully\n");return 0;}

Resultado da realocação no exemplo C:

Memory created successfully

Sempre que o realocamento resulta em uma operação malsucedida, ele retorna um ponteiro nulo e os dados anteriores também são liberados.