TrabalhosGratuitos.com - Trabalhos, Monografias, Artigos, Exames, Resumos de livros, Dissertações
Pesquisar

Ponteiros

Resenha: Ponteiros. Pesquise 861.000+ trabalhos acadêmicos

Por:   •  19/11/2012  •  Resenha  •  510 Palavras (3 Páginas)  •  612 Visualizações

Página 1 de 3

Ponteiros

Um ponteiro é um tipo especial de variável que armazena endereços. Um ponteiro pode ter o valor especia NULL, que não é o endereço de lugar algum. A constante NULL está definida no arquivo-interface stdlib e seu valor é 0 na maioria dos computadores.

Se um ponteiro p armazena o endereço de uma variável i, podemos dizer "p aponta para i" ou "p é o endereço de i" (querendo dizer "o ponteiro p aponta para i" no primeiro caso e "o valor de p é o endereço de i" no segundo). Se um ponteiro p tem valor diferente de NULLentão , *p é o valor do objeto apontado por p. (Não confunda esse uso de "*" com o operador de multiplicação!) Por exemplo, se i é uma variável e pé igual a &i então dizer "*p" é o mesmo que dizer "i".

Figura esquerda: um ponteiro p, armazenado no endereço 90001, contém o endereço de um inteiro. Figura direita: representação esquemática da situação.

Há vários tipos de ponteiros: ponteiros para caracteres, ponteiros para inteiros, ponteiros para ponteiros para inteiros, ponteiros pararegistros etc. O computador faz questão de saber de que tipo de ponteiro você está falando. Para declarar um ponteiro p para um inteiro, diga

int *p;

Para declarar um ponteiro p para um registro cel, diga

struct cel *p;

Um ponteiro r para um ponteiro que apontará um inteiro é declarado assim:

int **r;

Operador*

Acessa o conteúdo armazenado na variável.

Ex: int nome; nome_aux , *ptr_nome;

Operador&;

É usado para indica o Endereço da variável

Ex. ptr_nome = &nome;

Função malloc()

Utilizada em problemas de estrutura de dados,listas,encadeadas,pilhas,filas,árvores binárias e grafos.

A função malloc() serve para alocar memória e tem o seguinte protótipo:

void *malloc (unsigned int num);

A funçao toma o número de bytes que queremos alocar (num), aloca na memória e retorna um ponteiro void * para o primeiro byte alocado. O ponteiro void *pode ser atribuído a qualquer tipo de ponteiro. Se não houver memória suficiente para alocar a memória requisitada a função malloc() retorna um ponteiro nulo.

Função free()

Quando alocamos memória dinamicamente é necessário que nós a liberemos quando ela não for mais necessária. Para isto existe a função free() cujo protótipo é:

void free (void *p);

Basta então passar para free() o ponteiro que aponta para o início da memória alocada. Mas você pode se perguntar: como é que o programa vai saber quantos bytes devem ser liberados? Ele sabe pois quando você alocou

...

Baixar como (para membros premium)  txt (2.9 Kb)  
Continuar por mais 2 páginas »
Disponível apenas no TrabalhosGratuitos.com