Estrutura de dados

555 palavras 3 páginas
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
{
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 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 C
Algoritmos

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, "joao da 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 outras variá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);

Relacionados

  • Estrutura de Dados
    294 palavras | 2 páginas
  • Estrutura de dados
    1410 palavras | 6 páginas
  • estrutura de dados
    308 palavras | 2 páginas
  • Estrutura de dados
    1209 palavras | 5 páginas
  • Estrutura de dados
    365 palavras | 2 páginas
  • estrutura de dados
    940 palavras | 4 páginas
  • Estrutura de dados
    1051 palavras | 5 páginas
  • Estrutura de dados
    45366 palavras | 182 páginas
  • Estrutura de Dados
    16294 palavras | 66 páginas
  • Estrutura de Dados
    1559 palavras | 7 páginas