Bonjour � tous !
J'utilise pour la 1�re fois Code Blocks, et quand je compile mon programme en C il me retourne des erreurs de C++... Comment faire pour que ce soit un compilateur de C qui soit utilis� ?
Merci d'avance.
Bonjour � tous !
J'utilise pour la 1�re fois Code Blocks, et quand je compile mon programme en C il me retourne des erreurs de C++... Comment faire pour que ce soit un compilateur de C qui soit utilis� ?
Merci d'avance.
Bonjour,
quelle version de code::blocks utilises-tu? Sur quel OS (je demande �a car les versions sont un peu diff�rentes selon les OS)?
Sur la derni�re (8.02), tu peux choisir, lorsque de la cr�ation d'un nouveau projet tu peux choisir s'il s'agit d'un projet en C ou en C++.
Mais sinon, si ce sont des .c (et non .cpp), ils seront automatiquement compil� en C.
J'ai la derni�re version de Code Blocks, sur Windows.
Mon programme a bien l'extension .c ; quand je le compile, il me retourne une erreur de C++, par exemple pour :
il y a l'erreur suivant :
Code : S�lectionner tout - Visualiser dans une fen�tre � part int* p = malloc(sizeof(int) * 5);
Je n'ai pas appris � mettre (int*) devant un malloc (plus g�n�ralement, le type du pointeur)... Alors, soit j'ai mal appris (bouh les profs) soit... c'est pas du C.. Soit... c'est du C mega strict.
Code : S�lectionner tout - Visualiser dans une fen�tre � part error: invalid conversion from `void*' to `int*'
C'ets quoi la bonne r�ponse ?![]()
Ca fait bien bien longtemps que je n'ai pas programm� en C, mais d'apr�s ce que je viens de lire sur le malloc, cette fonction renvoie bien un void*.
Et d'apr�s ce que j'ai lu, il faut faire un cast pour ce que tu veux faire:
J'aurais donc tendance � dire que c'est gcc qui est tr�s exigeant, mais peut-�tre que je me trompe.
Code : S�lectionner tout - Visualiser dans une fen�tre � part int* p = (int*) malloc(sizeof(int) * 5);
Quoi qu'il en soit, tu auras de meilleurs r�ponses sur le sujet du malloc sur le forum C.
En fait, qu'est-ce que qui te fais dire que ce sont des erreurs c++ que tu obtiens?
Merci beaucoup pour ta r�ponse.
En tout cas, bizarre que �a ne me mette pas l'erreur sur les pc de ma fac (FreeBSD, avec GCC comme compilateur...), p'tet que c'est pas la m�me version que j'ai chez moi.
Pourquoi je pensais que c'�tait compil� comme du C++ : quand j'ai demand� � afficher tous les warnings et erreurs possibles, �a m'a affich� des erreurs mentionnant le C++... Donc, �a m'a trifouill� les neurones. ^_^
Myst�re et boule de gomme.
Ta r�ponse doit �tre la bonne (y'a juste une alien dans ma machine, c'est s�r :p). J'vais donc faire plus attention � �crire correctement mon code.
Peut-�tre que tu avais des commentaires multi-lignes du style /* */ qui ne sont pas standards en C mais seulement en C++ et gcc te l'as indiqu� (je crois que �a vient avec l'option -pedantic).
Euh, perdu, ce sont les commentaires unilignes ( avec // ) qui sont interterdits en C89 et C90.
SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parl� avant.
"Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
Apparently everyone. -- Raymond Chen.
Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.
Ah, �a confirme que j'ai pas de chance avec les jeux de hasard...
Heureusement que j'ai mis le peut-�tre![]()
Partager