Deux ou plus de deux types de données dans la déclaration des spécificateurs d'erreur
Je suis assez nouveau à C.
J'obtiens cette erreur:
incompatible déclaration implicite de la fonction intégrée ‘malloc’
Même quand j'ai corrigé le code, basé sur les réponses à inclure <stdlib.h>
, j'obtiens toujours:
deux ou plus de deux types de données dans la déclaration des prescripteurs
Lorsque vous essayez de le faire:
struct tnode
{
int data;
struct tnode * left;
struct tnode * right;
}
struct tnode * talloc(int data){
struct tnode * newTnode;
newTnode = (struct tnode *) malloc (sizeof(struct tnode));
newTnode->data = data;
newTnode->left = NULL;
newTnode->right = NULL;
return newTnode;
}
Comment puis-je résoudre ce problème?
- Ok, pas juste de changer les règles du jeu après que les gens ont déjà (bien) répondu à votre première question. Maintenant, ces réponses mentionnant
stdlib.h
ressembler, ils sont la réponse à une autre question. - Modifié la question, de sorte que toutes les précédentes réponses n'étaient pas invalidé. Pourrait être une bonne idée de le garder en tête pour plus tard, @SuperString.
- Et maintenant, cette question a réussi à arriver en haut des résultats de Google. Mauvaise forme, la modification de cette question, à mi-chemin.
Vous devez vous connecter pour publier un commentaire.
Vous devez mettre
;
derrière lastruct
déclaration:Votre erreur d'origine était parce que vous essayez d'utiliser
malloc
sansstdlib.h
.Votre nouveau message d'erreur (qui ne devrait vraiment avoir été une question distincte, puisque vous avez maintenant annulé toutes les autres réponses à ce jour), c'est parce que vous êtes en manque un point-virgule à la fin de la
struct
définition.Ce code compile bien (quoique sans
main
):"Déclaration implicite" signifie que vous essayez d'utiliser une fonction qui n'a pas été officiellement déclarée.
Vous avez probablement oublié:
#include <stdlib.h>
qui comprend la déclaration de la fonction pourmalloc
.Pensez-vous avoir le fichier d'en-tête inclus?
Qui est, est-il une ligne en haut de votre fichier qui dit
Espère que cette aide.
Vous assurer que vous avez inclus l'en-tête de fichier qui contient la définition de la fonction malloc():