Escreva um programa para fazer a alocação dinâmica dos blocos de dados conforme solicitado abaixo:
Vetor de 1024 Bytes ( 1 Kbyte).
Vetor de 1024 Bytes ( 1 Kbyte).
Passo 1
O enunciado pede um programa em C que faça alocação dinâmica de um vetor de 1024 bytes (1 Kbyte). Vamos precisar usar malloc para reservar memória e free para liberar.
Passo 2
Primeiro, incluímos as bibliotecas necessárias: <stdlib.h> para malloc e free, e <stdio.h> para imprimir mensagens de erro ou confirmação.
No main, declaramos um ponteiro do tipo unsigned char* (ou void*) para receber o bloco de 1024 bytes. Em seguida, chamamos malloc passando 1024 como argumento.
No main, declaramos um ponteiro do tipo unsigned char* (ou void*) para receber o bloco de 1024 bytes. Em seguida, chamamos malloc passando 1024 como argumento.
Passo 3
É importante verificar se malloc retornou NULL. Se sim, imprimimos uma mensagem de falha e encerramos com código de erro. Caso contrário, podemos usar a memória normalmente.
Depois de usar o vetor (mesmo que só para demonstração), chamamos free no ponteiro para devolver a memória ao sistema e retornamos 0 para indicar que o programa terminou sem erros.
Depois de usar o vetor (mesmo que só para demonstração), chamamos free no ponteiro para devolver a memória ao sistema e retornamos 0 para indicar que o programa terminou sem erros.
Resposta
#include <stdio.h>
#include <stdlib.h>
#include <stdlib.h>
int main(void) {
/* Aloca dinamicamente 1024 bytes */
unsigned char *vetor = (unsigned char )malloc(1024);
if (vetor == NULL) {
fprintf(stderr, “Falha na alocação de memória.\n”);
return 1; / Código de erro */
}
/* Aloca dinamicamente 1024 bytes */
unsigned char *vetor = (unsigned char )malloc(1024);
if (vetor == NULL) {
fprintf(stderr, “Falha na alocação de memória.\n”);
return 1; / Código de erro */
}
/* A partir daqui você pode usar o vetor de 1024 bytes */
/* ... código de uso do vetor ... */
/* Libera a memória alocada */
free(vetor);
return 0;
}