04 - Estrutura de Dados - Alocação Dinâmica - v3
04 - Estrutura de Dados - Alocação Dinâmica - v3
04 - Estrutura de Dados - Alocação Dinâmica - v3
Alocação Dinâmica
Estrutura de Dados – Alocação
dinâmica
A função malloc()
Formato:
void *malloc(size_t tamanho)
Recebe como argumento a quantidade de bytes a serem alocados (portanto
um número inteiro sem sinal representado por size_t). Retorna um ponteiro
void que, no caso da linguagem C, é automaticamente convertido no tipo do
lado esquerdo do operador de atribuição. Se for usado o compilador C++ é
preciso fazer o “casting” do retorno para o tipo do ponteiro Retorna um
ponteiro nulo se falha em alocar a memória;
O código exemplo também inclui a função:
size_t strlen(const char *s)
Essa função recebe a variável ponteiro to tipo char que contém a string
(const char *s) e retorna um inteiro sem sinal (size_t) que é a quantidade de
caracteres da string (não conta o null (\0) do fim da string);
Ver código 2
Estrutura de Dados – Alocação
dinâmica
A função free()
Formato:
void free(ponteiro)
A função recebe como argumento o ponteiro que aponta para o bloco
de memória que tem que ser liberado;
Ver código 3 (1/3, 2/3 e 3/3).
Estrutura de Dados – Alocação
dinâmica
A função calloc()
Assim como malloc(), função calloc() também é utilizada para alocar
memória dinamicamente. A diferença é que o espaço de memória é
inicializado com 0 e ela também recebe outro argumento que é o
número de “itens” que serão alocados. Retorna um ponteiro nulo se
falha em alocar a memória;
Ver código 4.
Estrutura de Dados – Alocação
dinâmica
Atividade
(ZHANG, 2000, p. 294) Escreva um programa que solicite ao
usuário que entre com o total de números que ele ou ela quer
alocar. Então, inicialize a memória alocada com inteiros
consecutivos, iniciando com 1. Some todos os inteiros contidos no
bloco de memória e imprima o resultado final na tela.
Estrutura de Dados – Alocação
dinâmica
Bibliografia e referências
KOFFMAN, E. B.; WOLFGANG. Objetos, Abstração, Estruturas de
Dados e Projeto usando C++, LTC, 2008.
ZHANG, T. Teach yourself C in 24 Hours, SAMS, 2000.