Modifier la taille d'un char* en C++
silentData
Messages postés
183
Date d'inscription
Statut
Membre
Dernière intervention
-
scaravenger Messages postés 2685 Date d'inscription Statut Membre Dernière intervention -
scaravenger Messages postés 2685 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Moi qui suit à fond java, dès le moment où je dois retoucher le C++ et ses pointeurs, je m'en sort plus :'(
Voilà donc mon problème :
Je crée une classe String avec un attribut char* s qui représente la chaîne de caractère.
J'ai créé une méthode setSize() pour redimensionner la taille de ma chaîne... Cependant, je n'arrive pas à la faire fonctionner... Voici mon code actuel :
Est-ce que qqun pourrait m'aider ?
Merci :)
Moi qui suit à fond java, dès le moment où je dois retoucher le C++ et ses pointeurs, je m'en sort plus :'(
Voilà donc mon problème :
Je crée une classe String avec un attribut char* s qui représente la chaîne de caractère.
J'ai créé une méthode setSize() pour redimensionner la taille de ma chaîne... Cependant, je n'arrive pas à la faire fonctionner... Voici mon code actuel :
void String::setSize(int size){ char *tmp = new char[size+1]; //Je crée une chaine temp. avec la nouvelle taille strcpy(tmp, this->s); //Je copie la valeur actuelle de la chaîne delete[] this->s; //Je désalloue mon attribut this->s = new char[size+1]; //Je redéfini l'attribut à la bonne taille strcpy(this->s, tmp); //Je copie la valeur de la chaîne temporaire dans l'attribut }
Est-ce que qqun pourrait m'aider ?
Merci :)
A voir également:
- Modifier la taille d'un char* en C++
- Comment réduire la taille d'un fichier - Guide
- Modifier dns - Guide
- Modifier liste déroulante excel - Guide
- Modifier story facebook - Guide
- Modifier l'extension d'un fichier - Guide
3 réponses
As tu dimensionné ou initialisé ton char* s avant l'appel de setSize()?
Quel message d'erreur obtiens tu?
Quel message d'erreur obtiens tu?
Oui, il est bien initialisé au début et utilisé...
Je n'ai pas de message d'erreur, mais la valeur et la taille de s ne change pas...
J'ai essayé d'y aller pas-à-pas, mais au moment où je fais this->s = new char[size+1]; la taille de s n'a pas changé...
Je n'ai pas de message d'erreur, mais la valeur et la taille de s ne change pas...
J'ai essayé d'y aller pas-à-pas, mais au moment où je fais this->s = new char[size+1]; la taille de s n'a pas changé...