BossMan
-
16 juil. 2001 à 12:24
PJulot
Messages postés29Date d'inscriptiondimanche 8 juillet 2001StatutMembreDernière intervention30 octobre 2003
-
25 juin 2004 à 03:27
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.
Ah! Quel horreur ! C'est moche ce que tu as fais là!!!
Lorsque tu écris :
char*buffer = new char;
tu alloues de la mémoire pour un seul caractère ce qui est complètement faux car la taille de la nouvelle chaîne de caractères dépend de la taille des deux chaînes passées en paramètre.
Donc il faut écrire :
int Size = strlen(lpStr1) + strlen(lpStr2) + 1;
char* buffer = new char[Size];
Mais attention!! Car tu retourne pointeur sur l'adresse de la nouvelle chaîne de caractères qui vient d'être allouer. Ce qui veux dire qu'il ne faudra pas oublier de désallouer lorsque tu n'auras plus besoin de cette chaîne. Ceci afin d'éviter les Memory Leak.
Après une allocation avec l'opérateur new vient toujours une désallocation avec l'opérateur delete.
De plus il existe d'autres manières plus simples de concater deux chaînes de caractères! Conseil réfléchi bien avant de mettre ton code source. Car ça ne sert à rien d'apprendre de la merde aux débutants.
25 juin 2004 à 03:27
5 sept. 2001 à 12:00
Lorsque tu écris :
char*buffer = new char;
tu alloues de la mémoire pour un seul caractère ce qui est complètement faux car la taille de la nouvelle chaîne de caractères dépend de la taille des deux chaînes passées en paramètre.
Donc il faut écrire :
int Size = strlen(lpStr1) + strlen(lpStr2) + 1;
char* buffer = new char[Size];
Mais attention!! Car tu retourne pointeur sur l'adresse de la nouvelle chaîne de caractères qui vient d'être allouer. Ce qui veux dire qu'il ne faudra pas oublier de désallouer lorsque tu n'auras plus besoin de cette chaîne. Ceci afin d'éviter les Memory Leak.
Après une allocation avec l'opérateur new vient toujours une désallocation avec l'opérateur delete.
De plus il existe d'autres manières plus simples de concater deux chaînes de caractères! Conseil réfléchi bien avant de mettre ton code source. Car ça ne sert à rien d'apprendre de la merde aux débutants.
17 juil. 2001 à 03:29
strcat(Chaine1, Chaine2);
Copie Chaine2 à la suite de Chaine1.
strncat(Chaine1, Chaine2, 5);
Copie les 5 premiers caractères de Chaine2 à la suite de Chaine1.
strcpy(Chaine1, Chaine2);
Supprime le contenue(ou valeur) de Chaine1 et le remplace par le contenue(ou valeur) de Chaine2.
strncpy(Chaine1, Chaine2, 5);
Supprime le contenue(ou valeur) de Chaine1 et le remplace par les 5 premiers caractères de Chaine2.
Etc...
C'est juste un petit ajout, rien de plus :)
16 juil. 2001 à 12:24
Je croyais vraiment ne jamais réussir a faire un truc pareil ! C'est coul