Erreur c99

Salut tout le monde,
Actuellement je m'entraine sur prologin, et j'ai remarquer que code::blocs ( avec le compilateur de linux) me dit

/home/jarres/WorkSpace/Entrainement/main.c||In function ‘main’:|
/home/jarres/WorkSpace/Entrainement/main.c|36|error: ‘for’ loop initial declarations are only allowed in C99 mode|
/home/jarres/WorkSpace/Entrainement/main.c|36|note: use option -std=c99 or -std=gnu99 to compile your code|
/home/jarres/WorkSpace/Entrainement/main.c|38|error: redefinition of ‘_l’|
/home/jarres/WorkSpace/Entrainement/main.c|36|note: previous definition of ‘_l’ was here|
/home/jarres/WorkSpace/Entrainement/main.c|38|error: ‘for’ loop initial declarations are only allowed in C99 mode|
/home/jarres/WorkSpace/Entrainement/main.c|39|error: ‘for’ loop initial declarations are only allowed in C99 mode|
||=== Build finished: 4 errors, 0 warnings ===|

et voici le code correspondant :
" int main(void) // ceci correspond à la ligne 27 :) )
{
int N;
int M;
int** matrix;

scanf("%d\n", &N);
scanf("%d\n", &M);
matrix = calloc(N, sizeof(int*));
for(int _l = 0; _l matrix[_l] = calloc(M, sizeof(int));
for(int _l = 0; _l for(int _c = 0; _c scanf("%d", &matrix[_l][_c]);

Inverser(N, M, matrix);

return 0;
}"

J'attend impatiemment vos réponses
Merci d'avance
Jarres

Quelle est la question ?
En fait, for(int ...), c'est à dire déclarer une variable dans un for, n'est pas permis avant la version C99.
Tu dois déclarer les variables avant, ou compiler en C99 (ou en c++)

Oui j'ai oublié la question : Comment compiler en c99 avec code::blocks, les rares explication sur le net ne correspondent pas avec ma versions.

De toute façon, sur le serveur de prologin, la déclaration de variables dans le for ne sera pas permise non plus si je m'en rappelle bien.
Le mieux serait de s'habituer à les déclarer avant, non?
Ou sinon, passe au C++ :p.

Oups, desolé alors.

Edit: Je me rattrape:
In the project properties (right click over project->properties) click "Project's build options..." button, then in "Compiler settings" tab, click in "Other options" sub-tab. Type "-std=c99" in text area and thats all.

Oui j'avais aussi trouver ce tutorial mais ... non désolé la version de code::blocks que j'ai ne fonctionne pas comme sa :p
( Jvais pas apprendre la poo et la syntaxe du C++ en 2 semaine ( quoi que sa peux être rigolo surtour que je maitrise pas le C a 100% ;p ) )
Mais si tu me dit que les déclaration de variable dans un for ne sont pas autorisé ... je vais les gerter ;)
Merci beaucoup :D

Pas besoin d'apprendre la poo, tu fais du C, mais tu compiles en c++.
Les incompatibilités sont rares dans ce sens, et il est peu probable que tu en rencontres une - autre que les conversions implicites qui font gueuler g++, en résolvant des problèmes sur prologin.

Importe bien cstdio si tu veux continuer à utiliser les entrées et sorties du C.
De toute facon, pour faire du C en C++, il suffit d'inclure les libs du type " c*****.h"

Je suis pas sur de comprendre les deux derniers commentaire : perso j'inclu stdlib.h et stdio.h et non cstdio.h ... Risque de probleme ?

ralalalala
Inclure stdio.h en C++, c'est censé poser des problèmes, mais g++ est gentil, et donc g++ s'occupe de tout (comme la plus part des compilos dans ce cas là).
Même si, en C++, stdio.h n'existe pas forcement, il y a un équivalent c'est cstdio (et non cstdio.h) mais dans ce cas là, les déclarations sont faites dans le namespace std !

Sinon, j'ai la solution au problème : « utiliser le seul vrai IDE, c'est à dire VIM ».
(booohh ça va c'est vendredi)

Répondre au sujet

Vous devez vous enregistrer ou vous connecter pour poster des messages.