Alocando Variáveis Dinâmicas: mudanças entre as edições

De Wiki Cursos IFPR Foz
Ir para navegaçãoIr para pesquisar
 
(3 revisões intermediárias pelo mesmo usuário não estão sendo mostradas)
Linha 3: Linha 3:
Um [[Ponteiros em C | '''ponteiro''']] é uma variável que contem o '''endereço''' de uma variável.  
Um [[Ponteiros em C | '''ponteiro''']] é uma variável que contem o '''endereço''' de uma variável.  


Se <tt>x</tt> é uma variável qualquer, <tt>&x</tt> é um ponteiro para <tt>x</tt>. Se <tt>p</tt> é um ponteiro, <tt>*p</tt> é o objeto para o qual <tt>p</tt> aponta<ref name="TENENBAUM">TENENBAUM, Aaron M.; LANGSAM, Yedidyah; AUGENSTEIN, Moshe. '''Estruturas de dados usando C'''. Makron Books, 1995.</ref>.  
Se '''x''' é uma variável qualquer, '''&x''' é um ponteiro para x. Se '''p''' é um ponteiro, '''*p''' é o objeto para o qual p aponta<ref name="TENENBAUM">TENENBAUM, Aaron M.; LANGSAM, Yedidyah; AUGENSTEIN, Moshe. '''Estruturas de dados usando C'''. Makron Books, 1995.</ref>.  


Através dos '''ponteiros''', podemos '''alocar e liberar dinamicamente espaço para variáveis''' em C.


Em C, um ponteiro para uma variável inteiro pode ser declarado como:
int *p
assim que a variável p for declarada como ponteiro, podemos alocar dinamicamente um objeto deste tipo e atribuir seu endereço a p.
;Função malloc: A função '''malloc(''size'')''' aloca dinamicamente espaço na memória, de tamanho ''size'', e retorna um ponteiro para este espaço.
Por exemplo:
int *p
p = (int *) malloc(sizeof (int));
aloca dinamicamente para p espaço relativo a um tipo inteiro.
;Função free: A função '''free(var)''' é usada em C para liberar o espaço alocado dinamicamente para uma variável.
Por exemplo:
free(p);
invalida quaisquer referências futuras a *p.
;Ponteiro para NULL: Em C, é possível atribuir a um ponteiro p o valor NULL, o que indica que o mesmo não aponta para nada. Neste caso, uma referência a *p será uma operação inválida.





Edição atual tal como às 12h49min de 7 de novembro de 2014

Alocando Variáveis Dinâmicas

Um ponteiro é uma variável que contem o endereço de uma variável.

Se x é uma variável qualquer, &x é um ponteiro para x. Se p é um ponteiro, *p é o objeto para o qual p aponta[1].

Através dos ponteiros, podemos alocar e liberar dinamicamente espaço para variáveis em C.

Em C, um ponteiro para uma variável inteiro pode ser declarado como:

int *p

assim que a variável p for declarada como ponteiro, podemos alocar dinamicamente um objeto deste tipo e atribuir seu endereço a p.

Função malloc
A função malloc(size) aloca dinamicamente espaço na memória, de tamanho size, e retorna um ponteiro para este espaço.

Por exemplo:

int *p
p = (int *) malloc(sizeof (int));

aloca dinamicamente para p espaço relativo a um tipo inteiro.

Função free
A função free(var) é usada em C para liberar o espaço alocado dinamicamente para uma variável.

Por exemplo:

free(p);

invalida quaisquer referências futuras a *p.

Ponteiro para NULL
Em C, é possível atribuir a um ponteiro p o valor NULL, o que indica que o mesmo não aponta para nada. Neste caso, uma referência a *p será uma operação inválida.


Referências

  1. TENENBAUM, Aaron M.; LANGSAM, Yedidyah; AUGENSTEIN, Moshe. Estruturas de dados usando C. Makron Books, 1995.

--Evandro.cantu (discussão) 10h13min de 7 de novembro de 2014 (BRST)