gbourgeois0019
Messages postés152Date d'inscriptionlundi 3 avril 2006StatutMembreDernière intervention 2 juin 2008
-
17 juin 2006 à 18:40
gbourgeois0019
Messages postés152Date d'inscriptionlundi 3 avril 2006StatutMembreDernière intervention 2 juin 2008
-
17 juin 2006 à 19:51
Salut
J'ai un petit problème. voici le code :
char* Temp = new char[100];
char* Title = new char[100];
strcpy(Temp,"Exemple");
Title = Temp + 1 ;
delete[] Title;
Cela n'a pas de sens puisque ce n'est qu'un exemple mais en gros je veux que Title soit egal a "xemple" . Est-ce que je peut faire cela de cette manière puisque lorsque que je suis en release sa passe mais en debug il me fait une erreur lorsque j'arrive à delete[] Title.
Est-ce qu'il y a un manière plus correcte de tronquer le debut ou la fin d'un tableau de caratère ??
BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019 17 juin 2006 à 19:41
Temp[] sera une alloc ou GetCommandLine, boire ou conduire faut choisir.
Temp = GetCommandLine();
Temp[strlen(Temp)-2] = '\0';
Nenni, le retour de GetCommandLine() doit être considéré comme une constante, toute écriture dessus peut amener à un crash.
delete[] Temp;
normal que plante vu que pointe sur la commandLine.
gbourgeois0019
Messages postés152Date d'inscriptionlundi 3 avril 2006StatutMembreDernière intervention 2 juin 20081 17 juin 2006 à 18:43
J'ai changé le code pour ceci :
char* Temp = new char[100];
char* Title;
strcpy(Temp,"Exemple");
Title = Temp + 1 ;
delete[] Temp;
D'accord ca marche , ca ne fait plus d'erreur , mais ne reste-t-il pas de la mémoire non-désallouée quelque part ? Et de toute facon je ne trouve pas ca très beau comme methode si quelqu'un pouvais men donner un autre ! ;)
vecchio56
Messages postés6535Date d'inscriptionlundi 16 décembre 2002StatutMembreDernière intervention22 août 201014 17 juin 2006 à 19:09
char* Temp = new char[100];
char* Title = new char[100];
strcpy(Temp,"Exemple");
Title = Temp + 1 ;
delete[] Title;
C'est normal que ca plante, car Title ne correspond pas a une zone allouée (c'est Temp qu'il faut libérer)
gbourgeois0019
Messages postés152Date d'inscriptionlundi 3 avril 2006StatutMembreDernière intervention 2 juin 20081 17 juin 2006 à 19:47
Ok je vois mais t'aurais pas une solution miraculeuse pour mettre la commandline dans Temp puis pouvoir en faire ce que jai besoin den faire c'est a dire en enlever un bout au debut pis a la fin ??