Estrutura de dados

Páginas: 3 (555 palavras) Publicado: 8 de fevereiro de 2013
Linguagem C:
ponteiros para estruturas,
alocação dinânica
Prof. Críston
Algoritmos e Programação

Algoritmos e Programação: linguagem C
Algoritmos

Ponteiro para estrutura
typedef struct
{
charnome[100];
int idade;
} pessoa;
main()
{
pessoa joao;
pessoa *p = &joao;
strcpy(joao.nome, "joao da silva");
joao.idade = 20;
printf("%s, %d\n", (*p).nome, (*p).idade);
(*p).idade = 18;
printf("%s, %d\n",joao.nome, joao.idade);
}

Algoritmos e Programação: linguagem C
Algoritmos

Operador ->

substitui

(*p).

typedef struct
{
char nome[100];
int idade;
} pessoa;
main()
{
pessoa joao;
pessoa *p =&joao;
strcpy(joao.nome, "joao da silva");
joao.idade = 20;
printf("%s, %d\n", p->nome, p->idade);
p->idade = 18;
printf("%s, %d\n", joao.nome, joao.idade);
}

Algoritmos e Programação: linguagem CAlgoritmos

Estruturas auto-referenciadas
typedef struct pessoa pessoa;
struct pessoa
{
char nome[100];
int idade;
pessoa *pai;
};
main()
{
pessoa joao, pedro;
pessoa *p = &joao;
strcpy(joao.nome, "joaoda silva"); joao.idade = 20;
strcpy(pedro.nome, "pedro da silva"); pedro.idade = 45;
joao.pai = &pedro;
printf("%s, %d\n", joao.pai->nome, joao.pai->idade);
printf("%s, %d\n", p->pai->nome,p->pai->idade);
}

Algoritmos e Programação: linguagem C
Algoritmos

Se não fosse o operador -> ...

printf("%s, %d\n", (*(*p).pai).nome, (*(*p).pai).idade);
// no lugar de
printf("%s, %d\n", p->pai->nome,p->pai->idade);

Algoritmos e Programação: linguagem C
Algoritmos

Alocação dinâmica
• Permite solicitar memória em tempo de execução
• Função para alocar memória (stdlib.h):
malloc(num_bytes)

–Retorna o endereço de memória da região alocada
– Retorna zero se não for possível alocar

• Função para liberar a memória (stdlib.h):
free(endereco_regiao_alocada)

– A região fica disponível para outrasvariáveis/alocações

Algoritmos e Programação: linguagem C
Algoritmos

Alocação dinâmica
main()
{
// alocando um inteiro
int *p = (int*) malloc(sizeof(int));
if (p)
{
*p = 3;
printf("%d\n", *p);...
Ler documento completo

Por favor, assinar para o acesso.

Estes textos também podem ser interessantes

  • ESTRUTURA DE DADOS
  • Estrutura de dados
  • Estrutura de dados
  • Estrutura de Dados
  • Estrutura de dados
  • estrutura de dados
  • Estrutura de Dados
  • Estrutura dados

Seja um membro do Trabalhos Feitos

CADASTRE-SE AGORA!