• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

suzy

sera possivel? ou estou a inventar?

6 mensagens neste tópico

:P malta, tenho aqui um problema (estou a inventar), mas nao consigo aceder ao ponteiro, nem sei se isto e possivel  :hmm:




typedef struct objecto {
        char nome[20];
        char titulo[20];
        int preco;
        }livro;

typedef struct temp{
         livro **pointer; // ponteiro para vetor
        }no;
        
  
        
void busca(livro *ptr, int total){
            int dados;
            livro 
            no.pointer=&ptr;/// como faço??
            
            printf(" dados %d\n",(*pointer)->preco);
            };


basicamente é tenho um vetor de livros, ja preenchido, e que ter uma estrutura que aponte para o ponteiro que aponta para o vetor de livros  :nono1:

parece um bocado complexo  :wallbash:

*ptr // e o ponteiro que recebe o endereco do vetor dos livros

total// e o numero de livros

agora como o livro **pointer esta numa estrutura como acedo no.ptr?? nao da  :wallbash:

alguem me pode ajudar? nesta duvida?

muito obrigada

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Tens que rever melhor o que escreveste. Eu não percebi patavina do que disseste, muito por culpa de algumas frases sem sentido que deixaste aí...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Mesmo sem conseguir compreender nada da tua duvida acho que o erro esta na estrutura no

Estas  a espera de receber um poiter para uma referencia mas so estas a atribuir uma referencia

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

:wallbash: desculpem isto e muito dificil de explicar  :D:):D

mas vou tentar, o que eu quero, e já ando ha 3 dias de volta disto e nao sei como se faz:S

na minha aplicação tenho um vetor de medicos ja prenchido.

e quero que cada medico tenha uma lista ligada de consultas.

assim sempre que uma paciente quiser uma consulta

percorro o arrays dos medicos, verifico qual o nome do medico e acrescento uma consulta.

ja andei a mexer em vetores de ponteiros. mas enfim nada resulta, alguem sabe como isso se faz??

muito obrigada

:-[ :(

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Vais percorrendo o array e verificando se o nome do médico da posição do array em que te encontras é igual ao que tu queres.

Quando o encontrares, basta percorrer a lista ligada desse médico até ao fim, crias uma nova consulta com o malloc e preenches com os respectivos dados e metes o apontador da última célula a apontar para a nova que acabaste de criar.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

:wallbash:

mas nao tou a conseguir , da me erro




#include<stdio.h>
#include<string.h>
#include <stdlib.h>
# define MAX 100





typedef struct objecto consulta,*pconsulta;

typedef struct mau livro ,*plivro;
struct mau{
       char nome[50];
       int idade;
       pconsulta primeira;
       };
struct objecto{
        char tipo[50];
        pconsulta seg;
        };




void escreve_pagina(pconsulta f)
{
while(f!=NULL)
  {
  puts(f->tipo);
  f=f->seg;
  }
};

void insere_consulta(plivro ptr,int total,char *s){
         int i;
         pconsulta novo,aux;
         char n[50],vai[50];
         printf(" qual o nome\n");
         fflush(stdin);
         gets(n);
         
         
         
         
         for(i=0;i<total;i++){
            if(strcmp(n,ptr[i].nome)==0)
                printf(" %d\n",ptr[i].idade);
                 novo=(consulta*)malloc(sizeof(consulta));
                 if(novo==NULL)
                    return;
                 novo->seg=NULL;
                 
                 strcpy(novo->tipo,s);
                 if(ptr->primeira==NULL){
                     ptr->primeira=novo;
                     escreve_pagina(novo);
                     }
                 else
                 {
                 aux=ptr->primeira;
                 while(aux->seg!=NULL)
                  aux=aux->seg;
                  aux->seg=novo;
                  
                  
                  }
                }
         };
                 







é assim tenho um vetor de clientes, ja prrenchido e tneho um vetor ptr que é o vetor que vai comunicar com a função main

tio isto

ptr->[][][]

acontece que dentro de cada cliente quero ter uma lista ligada.

1  - vou percorrer o meu vetor, ate encontrar o cliente que quero, inserir a lista

2 - Achando o cliente, tenho um ponteiro consulta (primeira), (que e uma variavel da estrutura cliente) que aponta para uma lista.

como faço para ir buscar esse ponteiro (primeira)?

ptr->primeira??  é a mesma coisa que ir buscar a idade tipo ptr->idade???

isto ta uma confucsao:(

alguem me pode ajudar :wallbash:

obrigada

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora