1) ne jamais cacher un pointeur derrière un typedef, ce sont les emmerdements assurés
2) dans ton dernier code, ligne 5: tu alloues pour MSchaine sizeof(MSstring), soit la taille d'un pointeur (4 ou 8 octets), et dans cet espace tu copies le string v ?
Pour résumer:
char *chaine = malloc((strlen(v)+1)*sizeof(char)); // changement char * en char
strcpy(chaine, v); // copie v dans chaine
MString val = chaine; // val <- adresse de chaine
MString MSchaine = (MString) malloc(sizeof(MString)); // alloue 4/8 octets à MSchaine
strcpy(MSchaine, val); // copie val, donc chaine, donc v, dans MSchaine ?????
Ne pas oublier que val est local à la fonction, et donc détruit en sortie, et donc ligne 8 p->tab=&val ....
- Edité par edgarjacobs 9 février 2019 à 1:12:29
On écrit "j'ai tort", pas "tord" qui est le verbe "tordre" à la 3ème personne de l'indicatif présent
Oui je viens d'essayer, sur le moment je ne pouvais pass ^^, mais sinon maintenant ça fonctionne merci, je passe en résolu.
*** stack smashing detected ***
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
On écrit "j'ai tort", pas "tord" qui est le verbe "tordre" à la 3ème personne de l'indicatif présent