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

Krazzi

TAD

8 mensagens neste tópico

Boas. Tenho um problema com tipos abstractos de dados. Num programa que estou a tentar fazer ele nao consegue ir buscar uma variavel que se encontra num ficheiro.h . Como e que consigo fazer isso?

O exemplo e

no ficheiro.h

typedef struct docente

{

char Nome[MAX_CHAR];

char Email[MAX_CHAR];

nota avaliacao;

int Numero;

int numc;

}infoDocente, *apDocente;

no main.c

sscanf(line,"%c %d",&Nome,&Numero)!=ARG_USED

Ele diz que o Nome e Numero nao foi declarado.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

E não foram. Não existem variáveis com esses identificadores. A estrutura que defines tem dois dos membros com esses nomes, mas não tens quaisquer variáveis assim definidas. Para fazeres o que queres no main.c terias que ter algo do género:

infoDocente prof1;
sscanf(line,"%s %d",prof1.Nome,&(prof1.Numero));

Repara: tens que declarar uma estrutura do tipo que queres. No sscanf tens que usar %s e não %c porque queres ler uma string, suponho. (E não precisas de & em prof1.Nome já que Nome é um apontador para o primeiro caracter do vector de caracteres).

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Não. Quando defines uma estrutura estás apenas a definir um novo tipo de dados. Não estás a criar variáveis novas.

Eu estou a criar uma variável nova que é do tipo da estrutura que tu definiste e dá pelo nome de prof1.

Se calhar tens que rever as estruturas...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Para declarar uma instancia do docente n é preciso fazer uns mallocs?

O meu C anda bastante enferrujado.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Só se quiseres ter uma função que crie docentes e usá-los depois fora da função. Isto porque, a partir do momento em que defines o que é aquela estrutura, podes declarar variáveis dela como se fossem de outro tipo qualquer.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Eu tenho uma estrutura que define um so docente e outra o conjunto dos docente......entao prof1 e um docente e o teu infoDocente e o conjunto dos varios prof's certo?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Não. Aquando da definição da estrutura, ele fez dois typedefs.

- infoDocente que é o tipo da estrutura, ou seja, equivalente a struct docente

- apDocente que é o tipo de apontador para a estrutura, ou seja, equivalente a struct docente *

Eu limitei-me a declarar uma variável (chamada prof1) do tipo da estrutura, para lhe mostrar que precisava de ter uma variável para poder guardar o nome e o número.

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