Função malloc () na biblioteca C com EXEMPLO

Índice:

Anonim

O que é malloc em C?

A função malloc () significa alocação de memória. É uma função usada para alocar um bloco de memória dinamicamente. Ele reserva espaço de memória do tamanho especificado e retorna o ponteiro nulo apontando para o local da memória. O ponteiro retornado é geralmente do tipo void. Isso significa que podemos atribuir a função malloc a qualquer ponteiro.

Sintaxe

ptr = (cast_type *) malloc (byte_size);

Aqui,

  • ptr é um ponteiro de cast_type.
  • A função malloc retorna um ponteiro para a memória alocada de byte_size.
Example: ptr = (int *) malloc (50)

Quando esta instrução é executada com sucesso, um espaço de memória de 50 bytes é reservado. O endereço do primeiro byte de espaço reservado é atribuído ao ponteiro ptr do tipo int.

Considere outro exemplo de implementação malloc:

#include int main(){int *ptr;ptr = malloc(15 * sizeof(*ptr)); /* a block of 15 integers */if (ptr != NULL) {*(ptr + 5) = 480; /* assign 480 to sixth integer */printf("Value of the 6th integer is %d",*(ptr + 5));}}

Resultado:

Value of the 6th integer is 480

  1. Observe que sizeof (* ptr) foi usado em vez de sizeof (int) para tornar o código mais robusto quando a declaração * ptr for tipificada para um tipo de dados diferente posteriormente.
  2. A alocação pode falhar se a memória não for suficiente. Nesse caso, ele retorna um ponteiro NULL. Portanto, você deve incluir código para verificar se há um ponteiro NULL.
  3. Lembre-se de que a memória alocada é contígua e pode ser tratada como uma matriz. Podemos usar aritmética de ponteiro para acessar os elementos da matriz em vez de usar colchetes []. Aconselhamos usar + para referir-se aos elementos do array porque usar incrementação ++ ou + = muda o endereço armazenado pelo ponteiro.

A função Malloc também pode ser usada com o tipo de dados de caractere, bem como tipos de dados complexos, como estruturas.