Jump to content
Fred Gomes

Dúvida [structs]

Recommended Posts

Fred Gomes

Boas.

void escrita(){
    int i;
    typedef struct DADOS{               /*VARIAVEL DO TIPO STRUCT*/
    char sessao[7];
    char salas[4][dimlinha][dimcoluna];
    char filmes[4][40];
    char categorias[4][15];
    float precos1[4];
    }s[4];
       for(i=0;i<4;i++){
        strcpy(s[i].filmes[0],"Uma Aventura na Casa Assombrada");
        strcpy(s[i].filmes[1],"Tentaçao");
        strcpy(s[i].filmes[2],"Jackass 3D");
        strcpy(s[i].filmes[3],"Amalia-O Filme");
    }



}

tenho 4 variáveis do tipo struct declaradas dentro de uma subfunção.. e não percebo o porquê do erro de sintaxe.. o que estou a tentar fazer é alocar um nome dum determinado filme dentro de cada uma fas variáveis do tipo struct..

alguém me consegue ajudar?

Share this post


Link to post
Share on other sites
Fred Gomes

o problema não pode estar no typedef, pq eu se tirar o typedef não posso chamar a variaável pelo "nome" mas sim repetindo sempre a palavra "struct". (já experimentei sem o typedef e acusa erro na mesma).

Share this post


Link to post
Share on other sites
Localhost

Tu assim não estás a declarar uma variável mas sim a definir um novo tipo! Mas mostra lá o erro.


here since 2009

Share this post


Link to post
Share on other sites
Fred Gomes

:/

já o consegui corrigir..

o erro era estupido, eu estava a chamar uma variavel (que estava dentro da struct) chamada filme, quando o seu nome era filmes:/

muito obrigado pela ajuda;)

Share this post


Link to post
Share on other sites
bubulindo

Ok... ainda assim, o Localhost tem a sua razão.

Para quê criar um novo tipo de dados dentro duma funcão?


include <ai se te avio>

Mãe () {

}

Share this post


Link to post
Share on other sites
Fred Gomes

sim sim,

eu tinha o tipo de dados struct alocado dentro de uma função..mas já o coloquei como variavel global.. é mais fácil manipulá-lo assim.

Share this post


Link to post
Share on other sites
pwseo

O teu problema não era apenas estares a alocar o s[4] dentro da função. O problema era estares a definir um novo tipo de dados dentro de uma função, o que na maioria dos casos (quase sempre, vá) é errado.

Estou a dizer isto porque pelos teus comentários parece-me que estás a confundir um pouco as coisas e não percebeste bem qual a função do typedef. Tipicamente farias:

typedef struct {
  char *campo1;
  int campo2, campo3;
} Dados;

void funcao(int args) {
  Dados instancia[4];

  instancia[1].campo2 = 0;
  // etc
}

Fora da função defines o tipo de dados e dentro da função crias variáveis com esse tipo... Não defines o tipo de dados dentro da função.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.