Strncat [Résolu]

Signaler
Messages postés
19
Date d'inscription
mercredi 30 novembre 2005
Statut
Membre
Dernière intervention
29 octobre 2006
-
Messages postés
19
Date d'inscription
mercredi 30 novembre 2005
Statut
Membre
Dernière intervention
29 octobre 2006
-
lu !

j'ai un problème concernant strncat
voilà mon code

char *t1 = "hello";
char *t2 = "12mo";
char *t3;
strncpy(t3, t1, 2);
après
strncat(t3, t2, 2);
et la quand je lance le programme il plante ! 
HELP !

6 réponses

Messages postés
3212
Date d'inscription
lundi 7 novembre 2005
Statut
Membre
Dernière intervention
16 février 2009
14
remplace ton t3 par
char t3[256];

___________________________________________
Les plus grands esprits trouvent toujours une solution
Messages postés
3212
Date d'inscription
lundi 7 novembre 2005
Statut
Membre
Dernière intervention
16 février 2009
14
Bon je vais donner plus d'explication. Tu essais de copier le contenue d'une chaine dans un pointeur qui n'a pas de mémoire alloué. C'est certain que ton programme plantera. En déclarent t3 comme un tableau (char t3[256] par exemple), tu t'assure d'avoir de la place pour x caractères. Sinon, tu peut toujours utiliser l'allocation dynamique (malloc et free ou encore new et delete en C++)

___________________________________________
Les plus grands esprits trouvent toujours une solution
Messages postés
540
Date d'inscription
vendredi 25 juin 2004
Statut
Membre
Dernière intervention
1 octobre 2007
2
(char t3[256] par exemple), tu t'assure d'avoir de la place pour x caractères
 x <= 256

dsl j'avais pas encore ton explication. !
rrk275
Messages postés
540
Date d'inscription
vendredi 25 juin 2004
Statut
Membre
Dernière intervention
1 octobre 2007
2
Pour explication tu essaye de mettre tes deux chaines  dans un emplacement de memoire quelquonque..
ou tu prend 2 + 2 +1 = 5 octets ... tu essaye donc d'écraser quelque chose et le systeme t'arrete par une segmentation fault !
t3 = (char*)malloc(5 * sizeof(char));//reserve pile poil l'emplacement !
ou
char t3[5];

rrk275
Messages postés
19
Date d'inscription
mercredi 30 novembre 2005
Statut
Membre
Dernière intervention
29 octobre 2006

lu

merci, je vai voir si sa marche
Messages postés
19
Date d'inscription
mercredi 30 novembre 2005
Statut
Membre
Dernière intervention
29 octobre 2006

lu


 


Merci sa marche !!