Darkvlador
Messages postés19Date d'inscriptionmercredi 30 novembre 2005StatutMembreDernière intervention29 octobre 2006
-
11 juin 2006 à 18:14
Darkvlador
Messages postés19Date d'inscriptionmercredi 30 novembre 2005StatutMembreDernière intervention29 octobre 2006
-
11 juin 2006 à 20:26
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 !
SAKingdom
Messages postés3212Date d'inscriptionlundi 7 novembre 2005StatutMembreDernière intervention16 février 200915 11 juin 2006 à 18:39
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
rrk275
Messages postés540Date d'inscriptionvendredi 25 juin 2004StatutMembreDernière intervention 1 octobre 20072 11 juin 2006 à 18:46
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
Vous n’avez pas trouvé la réponse que vous recherchez ?