É
tipo
assim.
Quando
você
declara
um
int
ou
um
char,
por
exemplo,
essas
variáveis
já
tem
um
número
de
bytes
pré
definido
pra
ocupar.
A
alocação
dinâmica
de
memória
aloca
só
exatamente
o
que
você
precisa.
Acaba
que
você
não
tem
um
vetor
muito
grande
nem
muito
pequeno,
porque
sua
variável
vai
ocupar
exatamente
o
que
você
mandar.
São
4
funções:
considerando
int
*p;
malloc:
p
=
(int*)
malloc(N
*
sizeof(int));
//aloca
memória
(N
inteiros)
calloc:
p
=
calloc(MAX_TAM, sizeof(int));
//aloca
memória de tamanho MAX_TAM
realloc:
p
=
(int
*)
realloc(x,
8000*sizeof(int));
//realoca
memória
de
antes
pro tamanho de 8000 inteiros
free:
free(p);
//libera
a
memória
É
importante
lembrar
que
quando
se
usa
a
alocação
dinâmica
é
da
NOSSA
responsabilidade
desalocar.
Senão
nem
quando
fechar
o
programa
aquela
alocação
vai
embora.
Outra
coisa
a
acrescentar
é
sobre
a
função
sizeof:
ela
retorna
o
tamanho
em
bytes
daquele
tipo
de
(ou
do
tipo
daquela)
variável.
Nenhum comentário:
Postar um comentário