Alocando Variáveis Dinâmicas: mudanças entre as edições
De Wiki Cursos IFPR Foz
Ir para navegaçãoIr para pesquisar
(Uma revisão intermediária pelo mesmo usuário não está sendo mostrada) | |||
Linha 17: | Linha 17: | ||
p = (int *) malloc(sizeof (int)); | p = (int *) malloc(sizeof (int)); | ||
aloca dinamicamente para p espaço relativo a um tipo inteiro. | 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== | ==Referências== |
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
- ↑ 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)