Solucionado (ver solução)
Solucionado
(ver solução)
5
respostas

Dúvida no Ex. 3 da Aula 2 - Manipulando Arrays

Olá, Não consigo compilar quando uso a sintaxe do FOR mostrado no curso (for(int i = 0;i<10;i++){}) tanto no win 10 quanto no Ubuntu 10.04 só compila se declarar a variável fora do loop.

ex:
int i = 0; 
for(i; i<10; i++){
}

Como faço para corrigir! aviso do compilador:

forca.c: In function 'main':
forca.c:16:3: error: 'for' loop initial declarations are only allowed in C99 mode
   for (int i = 0; i < strlen(palavrasecreta); i++)
   ^
forca.c:16:3: note: use option -std=c99 or -std=gnu99 to compile your code
5 respostas

Eu sempre aprendi na universidade que em C não se declara a variável dentro do "for". Porém, pelo visto isso varia de compilador pra compilador.

Como o seu não aceita (assim como o meu), apenas ignore e continue declarando fora, sem problema algum.

Um outro detalhe, já que você já declarou que "int i = 0;" pode fazer o for apenas com "for (; i<10; i++)".

Bons estudos!

Obrigado Luis Paulo. Eu vejo nas Vídeo-Aulas (MAC) que o gcc compila o 'FOR' com a declaração da variável na própria declaração do 'FOR' até mesmo o auto completar dos editores fazem isso, por isso queria compilar como nas Vídeo-Aulas.

solução!

Para conseguir compilar com o int dentro seria necessário que o modo C99 estive ativo. Para isso precisa colocar o parâmetro

-std=c99

na hora de compilar o programa.

Se a dúvida já estiver solucionada, marque a solução por favor, para a pergunta não ficar pendenter.

Obrigado Marcio, o digitei assim e funcionou:

gcc arquivo.c -o arquivo.exe -std=c99

De nada. Estamos aqui para isso.