J'essaye de construire une fonction qui compacte la fonction de sprintf, mais j'ai rencontré le problème suivant:C++ char tableau de corruption?
La première ligne après avoir appelé la classe (C'était une fonction, mais cela n'a pas fonctionné soit) je reçois le résultat correct: http://puu.sh/1m1Bw
Mais la ligne après que je reçois quelque chose de complètement différent, alors que je ne touche même pas la classe ou la variable: http://puu.sh/1m1BR
quelqu'un peut-il me expliquer ce qui se passe ici?
Edit: Vous avez oublié la classe réelle:
StringCreator::StringCreator(char* _parten, ...) {
char buff[255];
va_list args;
va_start (args, _parten);
vsprintf (buff,_parten, args);
va_end(args);
this->str = buff;
}
Et dans le fichier .h:
class StringCreator {
public:
StringCreator(char* _parten, ...);
char* str;
};
Non. Il est impossible d'expliquer ce qui se passe à moins que vous nous montriez le code ... – Jasper
Vous avez une erreur dans votre code. –
Oow shoot, fotgot la classe: \t StringCreator :: StringCreator (char * _parten, ...) { \t \t char buff [255]; \t \t va_list args; \t \t va_start (args, _parten); \t \t vsprintf (buff, _parten, args); \t \t va_end (args); \t \t this-> str = buff; \t} – Thijs