Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

muxDemux

Erros estranhos!

Recommended Posts

Fala galera, to fazendo um programa para resolver um conjunto de jogos Sudoku, usando Threads. Achei que as Threads que dariam todo trabalho mas estava enganado..

Vou postar os trechos de código onde o erro ocorre. Confesso que nunca me deparei com tais erros, são estranhos, cheguei até a pensar que seria problema do compilador, mas acho que não.

 

Declaração da estrutura:

#include <stdio.h>
#include <stdlib.h>
#include <windows.h>

#define maxThreads (4)
#define maxSudokus (4)


struct parametro
{
   int sudoku[9][9];
   int coluna;
   int linha;
};
typedef struct parametro Parametro;



Parte que ocorrem os erros(main):

(Sim, estou resolvendo 4 Sudokus iguais, para testes.

int main()
{
  
  
  int opcao = -1;
  int valor;
  int i;
  
  HANDLE thread[maxThreads];
  int thread_id[maxThreads];
  Parametro parametro[maxSudokus];
  
  for(i=0; i<maxSudokus; i++)
  {
       parametro[i].sudoku = {{8,3,0,0,0,5,6,9,0},
                             {0,0,6,0,8,0,0,0,2},
                             {0,0,0,6,0,0,0,0,5},
                             {6,0,0,0,0,3,0,0,0},
                             {3,0,5,0,0,0,9,0,6},
                             {0,0,0,9,0,0,0,0,7},
                             {4,0,0,0,0,2,0,0,0},
                             {5,0,0,0,4,0,1,0,0},
                             {0,8,7,1,0,0,0,4,9}};
                    
     parametro[i].coluna = 0;              
     parametro[i].linha = 0;     
  }



  
  while(opcao!=0 && opcao!=2)
  {
        menu();
        scanf("%d", &opcao);
        switch(opcao)
        {
           case 1:
                exibeSudoku(parametro[0].sudoku);
                break;
           
           case 2:
                
                for(i=0; i<maxSudokus-1; i++)
                    thread[i] = CreateThread(0,0,(void*)resolveThread,&parametro[i],0,&thread_id[i]);
                
                resolveThread(parametro[i]);
 
                break;
           
           case 0:
                exit(0);
           
        }
  }
  
  system("PAUSE");	
  return 0;
}

Seguem os erros:

main.c: In function `main':
main.c:156: error: syntax error before '{' token
main.c: At top level:
main.c:166: error: `i' undeclared here (not in a function)
main.c:166: error: syntax error before '.' token
main.c:167: error: syntax error before '.' token
main.c:176: error: syntax error before string constant
main.c:176: error: conflicting types for 'scanf'
main.c:176: note: a parameter list with an ellipsis can't match an empty parameter name list declaration
main.c:176: error: conflicting types for 'scanf'
main.c:176: note: a parameter list with an ellipsis can't match an empty parameter name list declaration
main.c:176: warning: data definition has no type or storage class
main.c:188: error: syntax error before '[' token
main.c:188: error: conflicting types for 'resolveThread'
main.c:85: error: previous definition of 'resolveThread' was here
main.c:188: warning: data definition has no type or storage class
main.c:198: error: syntax error before string constant
main.c:198: warning: data definition has no type or storage class

make.exe: *** [main.o] Error 1

Execution terminated

Alguém tem alguma noção do que pode estar a ocorrer? Não quero que falem de erros lógicos, se houver. Apenas quero que meu programa rode, aueuhaeuh. Se isso ocorrer, me viro com testes.

 

Desde já, vlwwwwwwwwwwwwwwww!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Velho tá dando erro até em system("PAUSE");, syntax error before string constant.
Tá falando que tem conflito de tipos, no scanf, mas eu declaro 'opcao' como inteiro depois faço scanf("%d", &opcao); e aparace um erro nessa linha: "a parameter list with an ellipsis can't match an empty parameter name list declaration".

Outro erro também é que o 'i' não está declarado (aparece not in a function, não sei se é algo especial), mas ele está declarado como inteiro no início da main().

 

WTF

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.