Bon juste pour rire

Je viens de me taper 2 heures de debug sous Dev C++ et je viens de trouver l erreur qui passe a la compille !!!

liste new_liste(arbre element, int poids,liste pere) {
liste temp;
if ((pere==NULL)||(poidsdata.poids))
{
temp=(liste)malloc(sizeof(struct liste));
temp->data.element=element;
temp->data.poids=poids;
temp->suivant=pere;
return temp;
}

new_liste(element, poids, pere->suivant);
return pere;
}

Koubiak Zen :nuts:

haaaaa c’a y est : compris…

heu : comme Glop alors ! :slight_smile:

okidoki compris !!! C est cool c est ce que j’ ai vu en compilation, vendredi dernier mais que j avais pas trés bien saisis!!! Merci Glop

Sinon la en faites, je m’ explique sur la non utilisation de new !!! En gros je fais du C (ndmoi : juste pour Glop j’ avais ecrit sais a la place de C :stuck_out_tongue: )et non du C++, car en faites je taf sous linux normaly ( donc compilation sous gcc). Mais je n’ ai pas de vrai compilo C sous Windows XP !!! En consequence, j’ utilise dev c++ .:stuck_out_tongue:

VOilou bon au lit aprés cette bonne douche

Koubiak

Deja j’avais bien compri Urlde :stuck_out_tongue: ca compile mais ca plante. J’avais saisi ca.

Ben non ca a rien de choquant. Bien sur il va verifier les type des parametres et le type de ce qui sort et voir si c’est conforme a la declaration. Mais ce que tu fais des resultats il s’en contre fout. Si tu l’assigne il va verifier le type a gauche et a droite de ton assignation mais si t’en fait rien il s’en fiche. Il peut pas savoir que ta fonction elle prend pas en param un pointeur ou un structure avec un pointeur et que tu va modifier les donnees a l’interieur et finir par retourner un truc super inutile que tu vas ignorer a chaque fois. T’as le droit de faire ca.

Donc il n’y a rien de mal a appeller une fonction sans faire que que ce soit de ce quelle retourne. Y a plein de fonction en C ou en C++ qui retourne qqch dont tu as rien a fouttre. Et vu que c’est meme pas un vrai constructeur ta fonction new_liste() il a aucun moyen de savoir que c’est special et que dans ton cas il devrait planter :P. De toute facon meme les vrais constucteur ca s’appelle pas directement mais avec « new ». Il est meme possible que meme ca on peut appeller sans assigner le resultat dans une variable mais j’ai jamais essaye :smiley:

[Edité le 19/11/2002 par GloP]

j’ai mis 20 minutes à trouver…

bon, glop, t’as mal lu, ca compile, mais ca plante

/edit: j’precise que j’avais trouvé sans les indications de koubiak /
koubiak arrete d’aider, ils trouverons pas…

j’peux donner la solution m’sieur ?

[Edité le 19/11/2002 par urdle]

y a pas de typages en C++ ??? Car la c’ est un probleme dans la table des symboles du programme en cours de compilation !!! Normallement il doit verifier si la fonction appellait avec les bon objerts et que la valeur retournée est bien stockée. Mais la rien elle est meme pas stocké dans une variable c’ est ca qui me surprends pas toi Glop ???

Je suis supris la ?!? Alors a tout les pro du C/C++ mattez ce source et dites moi :stuck_out_tongue:

Kouby qui dit que en C# ca ce fait tout facilement et mais que en faites le code il est pas compilé sur ta machine, mais sur des pc de 'crosoft grace au ninternet !!! Faites attention …(/me sort trés vite et va se coucher aussi aller o lit :P)

Moi perso je vois vraiment pas pouquoi ca compilerai pas :wink: Mais je rate ptet quelque chose… En C++ du moment que la syntaxe et les structures sont valides… ca passe.

et bé la fonction new_liste elle renvoie une liste et la je sock pas le retour de la fonction est ca compile quant meme bizard nan ???

C’ est bonou je fais caca aussi

Koubiak

bah nan, ca devrait ?

[quote]Je viens de me taper 2 heures de debug sous Dev C++ et je viens de trouver l erreur qui passe a la compille !!!

liste new_liste(arbre element, int poids,liste pere) {
liste temp;
if ((pere==NULL)||(poidsdata.poids))
{
temp=(liste)malloc(sizeof(struct liste));
temp->data.element=element;
temp->data.poids=poids;
temp->suivant=pere;
return temp;
}

new_liste(element, poids, pere->suivant);

bah si ton “temp” etait static ca serait pas un probleme, ou alors j’ai pas compris, et meme, dans certain cas, ca peut marcher : ca depend ou la variable est alloue :nuts:

titibgosse > no comment

Kane–sama > arf si j utilise dev c++ c est pas pour le plaisir avant j’ avais un bon soft qui faisait debugger vachement bien mais la plus rien donc dev c++ !!!

donc oui je savais utiliser un debugger :stuck_out_tongue:
Mais cette erreur sur un gros prog, il fallait y penser quant meme !!!
KOuby :slight_smile:

c’est marrant comme on a pas le même langage… je comprends rien au thread ! y’a ou une erreur ?
bon c’est pas grave, laissez tomber…

EDIT
juste pour pas se méprendre: quand je dit pas le même langage c’est parce que je ne connait rien a la programmation !

[Edité le 18/11/2002 par titibgosse]

ça me rappelle les Tp de Code ou les mecs, tout fiers, disent : « c’est bon ça compile j’ai fini… » apres un test ça se transphorme en « mince, ça renvoie pas ce qu’il faut » :stuck_out_tongue:
Un conseil aprend a utiliser un debuger ça set vachement.

Bhouhou :stuck_out_tongue:
Si seulement il y en avait qu’une erreur qui passe a la compile :slight_smile: :wink:

Hehe…

[Edité le 18/11/2002 par GloP]

hein ???