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).
Partager