Solucionado (ver solução)

Importante

Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!

Solucionado
(ver solução)
4
respostas

Por que consigo compilar esse código no meu Linux e não no Windows?

Eu compilei esse código no meu linux e não tive problemas, mas quando compilei ele no windows ele apontou um erro no "int i = 0". O que houve?

    for(int i = 0; i < 3; i++){

        printf("O primeiro usuario eh: %d\n", i);

        printf("\nDeclare o ip: \n");
        scanf("%s", &interno1[i].externo.ip);

        printf("Declare o uso do IP ( 0 \\ 1 ): \n");
        scanf("%d", &interno1[i].externo.ip_uso);

        printf("Digite a mascara:  \n");
        scanf("%s", &interno1[i].externo.mascara);

        printf("Declare o MAC: \n");
        scanf("%s", &interno1[i].mac);
        printf("\n\n");
    }

}
4 respostas

Para ser mais específico:

Preciso declarar int i fora quando estou no windows, mas não preciso quando estou no Linux.

Realmente muito estranho. Qual compilador está usando no windows?

Estou usando IDE codeblocks, GNU GCC compiler.

solução!
'for' loop initial declarations are only allowed in C99 mode

Este é o erro certo ? Ele é causado pela versão do compilador, você pode tentar ir em Settings > Compiler > Other e adicionar a propriedade -std=c99

Ref. How to get into C99 mode in Codeblocks10.05?