Forum Pplware

Versão Completa: problemas funçoes e estruturas
Está de momento a ver uma versão reduzida do nosso conteúdo. Ver versão completa com o formato adequado.
boas pessoal

eu estou a começar nestas cenas de linguagem c e estou com um grave problema.

o problema e o seguinte: quero por a seguinte funçao a fincionar mas nao faço a minima ideia como. aqui esta o codigo:
Código:
Código:

#include <stdio.h>
#include <stdlib.h>
struct Data{
        int mes, ano, dia;
        }data;

struct Gestao{
        char matricula[10];
        int classe;
        float horaEntrada;
        float horaSaida;
        struct Data data;
        };
void registar(struct Gestao, struct Data data){
       printf("Introduza a matricula do veiculo: ");
       gets(matricula);
       printf("\nIntroduza a classe do veiculo: ");
       scanf("%d", &classe);
       printf("introduza o ano: ");
       scanf("%d", &ano);
       printf("introduza o mes: ");
       scanf("%d", &mes);
       printf("introduza o dia: ");
       scanf("%d", &dia);
       printf("introduza a hora de entrada (hora.minutos)");
       scanf("%f", &horaEntrada);



}

void main()

{
    registar(Gestao,Data data)
    return 0;
}
se me poderem ajudar agradecia bastante.
um abraço


por favor ajudem-me ja estou a dois dias nisto e foi o melhor que consegui
por favor ajudem-me ja estou a dois dias nisto e foi o melhor que consegui
O meu C está um pouco enferrujado, mas ajudava dizeres o erro que te aparece.
Assim de repente, vejo vários problemas:

1) A função registar() não define nenhuma variavel para receber o 1o parametro (struct Gestao)

2) Dentro da função registar(), os valores são lidos para variáveis (não inicializadas) em vez de para os membros das estruturas passadas como parametro

3) Na função main(), estás a chamar a função registar() com o nome do tipo do 1o parametro em vez de com uma variável para recolher os valores.

Uma das tuas dificuldades parece ser acederes aos membros de uma estrutura.

Tendo a seguinte estrutura

Código:
struct Exemplo {
   int membro1;
   int membro2;
};

e tendo uma variavel desse tipo:

Código:
struct Exemplo var1;

A maneira de aceder aos membros da estrutura é usar o .

Código:
var1.membro1 = 12;

if (var1.membro2 == 34) {
   var1.membro2 = 42;
}


Se estiveres a lidar com ponteiros para uma estrutura:

Código:
struct Exemplo *ptr1;

então a maneira de aceder aos membros é por -> em vez de .

Código:
ptr1->membro1 = 12;

if (ptr1->membro2 == 34) {
   ptr1->membro2 = 42;
}

Nota: Não me referi à alocação da variavel quando usas ponteiros... Isso são outras núpcias.

Espero que isto te ajude a avançar um bocado.
URL's de Referência