Solucionado (ver solução)
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?