60

je crois qu'il avait mis pini en var globale...
avatar
Maintenant j'ai la flemme de garder une signature à jour sur ce site. Je n'ai même plus ma chaîne Exec sous la main.

61

ah ? possible bon, bah si c le cas ... pas la peine de le passer en paramètre:
void ajout(char i,liste *pini)

62

Link > non apparemment il a changé ça... donc nEUrOO a raison, il faut utiliser liste **pini comme paramètre dans ajout, remplacer partout pini par *pini dans cette fonction, et dans main passer en argument à ajout &p et non p
avatar
« Le bonheur, c'est une carte de bibliothèque ! » — The gostak distims the doshes.
Membrane fondatrice de la confrérie des artistes flous.
L'univers est-il un dodécaèdre de Poincaré ?
(``·\ powaaaaaaaaa ! #love#

63

matthieu>Je c pas si tu le sais déjas, mais en C, quand tu as un pointeur vers une structure, tu utilises soit p_struct->champ (recommandé) soit (*p_struct).champ. Si t'as une structure, tu doit faire v_struct.champ.
avatar
Membre fondateur de la Ligue Anti-MacIntoc
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Un expert est quelqu'un qui en sait de plus en plus sur de moins en moins
de choses, jusqu'à ce qu'il connaisse absolument tout à propos de rien.

64

Ouep, ce que j'ai dit plus haut koi smile

65

Exact^^
avatar
Membre fondateur de la Ligue Anti-MacIntoc
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Un expert est quelqu'un qui en sait de plus en plus sur de moins en moins
de choses, jusqu'à ce qu'il connaisse absolument tout à propos de rien.

66

mais qu'est ce que vous racontez ?!!! vous voulez que j'utilise un poiteur sur un poiteur sur une structure liste et ensuite vous voulez que j'utilise '->'. confus

laissez tomber, l'erreur se situe au niveau de l'initialisation de pini, la fonction creation, voit pini toujours null meme si elle l'a modifie :
si on fait ceci :
liste * creation(void)
{
liste *pini=malloc(sizeof(liste)); 
    pini->data=0 ; 
    pini->r=0; 
    pini->psuiv=0; 
    return pini;
}
void ajout(char i,liste *pini)
{  
  
    liste *p1=malloc(sizeof(liste));liste *p2=malloc(sizeof(liste));
    int r=0;
    p1=pini;
    while(p1) 
    {
      p2=p1;
      p1=(liste*)p1->psuiv;
      r++;
    }
    p1=(liste*)p2->psuiv=malloc(sizeof(liste)); 
    p1->data=i ; 
    p1->r=r; 
    p1->psuiv=0; 
    
}

on perd la taille d'1 element de la liste mais ca marche,
NTW !!!!!

67

et dites , ...la ds mon code ya que des pointeurs, pourquoi vous me parlez de v_struct.champ... confus
NTW !!!!!

68

parceque ta liste est une structure !!
et enfin, si tu relis tous les posts, tu sauras répondre à ton problème

69

liste *p1=malloc(sizeof(liste));liste *p2=malloc(sizeof(liste));
ça c'est toujours aussi n'importe quoi que dans l'autre fonction... tu jettes de la mémoire à la poubelle...
et sinon quand on parle de pointeur vers un pointeur c'est justement pour que tu puisses modifier la variable sans devoir utiliser un return ; si tu ne fais pas comme ça, la variable que tu modifies dans ta fonction est une copie locale de la variable passée en argument et ne modifie donc pas cette dernière.
C'est-à-dire que tu aurais pu faire :
liste * creation(liste **pini) 
{ 
*pini=malloc(sizeof(liste));  
    *pini->data=0 ;  
    *pini->r=0;  
    *pini->psuiv=0;  
} 

Et ensuite appeler cette fonction par « creation (&pini); ». Tu peux aussi faire ça avec un return, effectivement.
avatar
« Le bonheur, c'est une carte de bibliothèque ! » — The gostak distims the doshes.
Membrane fondatrice de la confrérie des artistes flous.
L'univers est-il un dodécaèdre de Poincaré ?
(``·\ powaaaaaaaaa ! #love#

70

ok g pigé g suivi vos conseil et desormail 0 de memoire perdu (pfiouuu deja un probleme de reglé)
maintenant je comprend pas cette histoire de pointeur que je ne peux pas modifier,
tu dois passer par un pointeur de pointeur sur liste por pouvoir modifier pini dans ajout

pourquoi ????
NTW !!!!!

71

a j'ai compris !!! c'est parce que je modifie le pointeur meme, et pas ce que pointe le pointeur !!!!!
NTW !!!!!

72

merci sally
NTW !!!!!

73

oui
avatar
« Le bonheur, c'est une carte de bibliothèque ! » — The gostak distims the doshes.
Membrane fondatrice de la confrérie des artistes flous.
L'univers est-il un dodécaèdre de Poincaré ?
(``·\ powaaaaaaaaa ! #love#

74

y dechire ce forum !!! love
NTW !!!!!

75

#et donnez moi la réponse directement la prochaine fois#

76

... j'ai jamais dis ca !!!!!
NTW !!!!!

77

Sinon, pour la question d'origine: on peut s'amuser avec des macros dans certains cas. Les sources du linker de TIGCC sont un bon endroit pour trouver des macros utilisées pour des fonctions polymorphes. smile
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité