muxDemux 0 Denunciar post Postado Setembro 18, 2015 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,¶metro[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
_Isis_ 202 Denunciar post Postado Setembro 18, 2015 Pare para ler e interpretar as mensagens: a maior parte é erro de sintaxe. Compartilhar este post Link para o post Compartilhar em outros sites
muxDemux 0 Denunciar post Postado Setembro 18, 2015 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
muxDemux 0 Denunciar post Postado Setembro 19, 2015 Resolvido! Compartilhar este post Link para o post Compartilhar em outros sites