fonctionne bien (temp,baseFileName,name étant des std::string)
et que
temp = baseFileName + '_' + name + "_000"
ne fonctionne pas (en step/step avec le bebugger temp contient alors n'importe quoi dès que cette ligne s'exécute).
Je n'en vois pas. Tu peux donner un exemple compilable minimum qui reproduise le probleme?
A+
-- Jean-Marc FAQ de fclc++: http://www.cmla.ens-cachan.fr/~dosreis/C++/FAQ C++ FAQ Lite en VF: http://www.ifrance.com/jlecomte/c++/c++-faq-lite/index.html Site de usenet-fr: http://www.usenet-fr.news.eu.org
Zouplaz <pouet@pouet.com> writes:
Bonjour, y-a-t-il une bonne raison pour que :
temp = baseFileName + '_' + name
fonctionne bien (temp,baseFileName,name étant des std::string)
et que
temp = baseFileName + '_' + name + "_000"
ne fonctionne pas (en step/step avec le bebugger temp contient alors
n'importe quoi dès que cette ligne s'exécute).
Je n'en vois pas. Tu peux donner un exemple compilable minimum qui
reproduise le probleme?
A+
--
Jean-Marc
FAQ de fclc++: http://www.cmla.ens-cachan.fr/~dosreis/C++/FAQ
C++ FAQ Lite en VF: http://www.ifrance.com/jlecomte/c++/c++-faq-lite/index.html
Site de usenet-fr: http://www.usenet-fr.news.eu.org
fonctionne bien (temp,baseFileName,name étant des std::string)
et que
temp = baseFileName + '_' + name + "_000"
ne fonctionne pas (en step/step avec le bebugger temp contient alors n'importe quoi dès que cette ligne s'exécute).
Je n'en vois pas. Tu peux donner un exemple compilable minimum qui reproduise le probleme?
A+
-- Jean-Marc FAQ de fclc++: http://www.cmla.ens-cachan.fr/~dosreis/C++/FAQ C++ FAQ Lite en VF: http://www.ifrance.com/jlecomte/c++/c++-faq-lite/index.html Site de usenet-fr: http://www.usenet-fr.news.eu.org
Zouplaz
Jean-Marc Bourguet - :
Je n'en vois pas. Tu peux donner un exemple compilable minimum qui reproduise le probleme?
Voici la méthode en entier, mais elle est pas compilable sans tout le reste :
Je me demande ce qui peut provoquer ce genre de problème...
PS : je sais, je sais itoa c'est pas standard !!
Vincent Lascaux
Voici la méthode en entier, mais elle est pas compilable sans tout le reste
Le but de la demande etait en partie de te forcer à isoler ton probleme dans un code le plus court possible. Il y a fort à parier que ton probleme est du à un acces douteux à la mémoire dans une autre partie du programme. La démarche de supprimer des fonctionnalités et des bouts de code te permettra de retrouver (avec de la patience et de la chance) l'endroit où est le code qui met le systeme dans un état instable.
-- Vincent
Voici la méthode en entier, mais elle est pas compilable sans tout le
reste
Le but de la demande etait en partie de te forcer à isoler ton probleme dans
un code le plus court possible. Il y a fort à parier que ton probleme est du
à un acces douteux à la mémoire dans une autre partie du programme. La
démarche de supprimer des fonctionnalités et des bouts de code te permettra
de retrouver (avec de la patience et de la chance) l'endroit où est le code
qui met le systeme dans un état instable.
Voici la méthode en entier, mais elle est pas compilable sans tout le reste
Le but de la demande etait en partie de te forcer à isoler ton probleme dans un code le plus court possible. Il y a fort à parier que ton probleme est du à un acces douteux à la mémoire dans une autre partie du programme. La démarche de supprimer des fonctionnalités et des bouts de code te permettra de retrouver (avec de la patience et de la chance) l'endroit où est le code qui met le systeme dans un état instable.
-- Vincent
Christophe Lephay
Zouplaz wrote:
char c_num[4]; ...
itoa(img_num,c_num,10);
Tu n'aurais pas un "débordement de tampon" ? Qu'est-ce que ça donne si tu utilises un tampon plus grand style :
char c_num[30];
Chris
Zouplaz wrote:
char c_num[4];
...
itoa(img_num,c_num,10);
Tu n'aurais pas un "débordement de tampon" ? Qu'est-ce que ça donne si tu
utilises un tampon plus grand style :
Tu n'aurais pas un "débordement de tampon" ? Qu'est-ce que ça donne si tu utilises un tampon plus grand style :
char c_num[30];
Chris
Jean-Marc Bourguet
Zouplaz writes:
Jean-Marc Bourguet - :
Je n'en vois pas. Tu peux donner un exemple compilable minimum qui reproduise le probleme?
Voici la méthode en entier, mais elle est pas compilable sans tout le reste:
Il ne te reste plus qu'a ajouter ce qu'il faut pour que ca compile, enlever ce qui n'est pas necessaire pour reproduire le probleme, dire ce que tu observes et ce a quoi tu t'attendais.
Les deux premiers points, je ne vois pas pourquoi tout ceux qui voudraient t'aider devrait le faire eux-meme, les deux autres, bien souvent on ne pas pas deviner. En prime il y a une chance non negligable que tu trouves la cause tout seul.
A+
-- Jean-Marc FAQ de fclc++: http://www.cmla.ens-cachan.fr/~dosreis/C++/FAQ C++ FAQ Lite en VF: http://www.ifrance.com/jlecomte/c++/c++-faq-lite/index.html Site de usenet-fr: http://www.usenet-fr.news.eu.org
Zouplaz <pouet@pouet.com> writes:
Jean-Marc Bourguet - jm@bourguet.org :
Je n'en vois pas. Tu peux donner un exemple compilable minimum qui
reproduise le probleme?
Voici la méthode en entier, mais elle est pas compilable sans tout
le reste:
Il ne te reste plus qu'a ajouter ce qu'il faut pour que ca compile,
enlever ce qui n'est pas necessaire pour reproduire le probleme, dire
ce que tu observes et ce a quoi tu t'attendais.
Les deux premiers points, je ne vois pas pourquoi tout ceux qui
voudraient t'aider devrait le faire eux-meme, les deux autres, bien
souvent on ne pas pas deviner. En prime il y a une chance non
negligable que tu trouves la cause tout seul.
A+
--
Jean-Marc
FAQ de fclc++: http://www.cmla.ens-cachan.fr/~dosreis/C++/FAQ
C++ FAQ Lite en VF: http://www.ifrance.com/jlecomte/c++/c++-faq-lite/index.html
Site de usenet-fr: http://www.usenet-fr.news.eu.org
Je n'en vois pas. Tu peux donner un exemple compilable minimum qui reproduise le probleme?
Voici la méthode en entier, mais elle est pas compilable sans tout le reste:
Il ne te reste plus qu'a ajouter ce qu'il faut pour que ca compile, enlever ce qui n'est pas necessaire pour reproduire le probleme, dire ce que tu observes et ce a quoi tu t'attendais.
Les deux premiers points, je ne vois pas pourquoi tout ceux qui voudraient t'aider devrait le faire eux-meme, les deux autres, bien souvent on ne pas pas deviner. En prime il y a une chance non negligable que tu trouves la cause tout seul.
A+
-- Jean-Marc FAQ de fclc++: http://www.cmla.ens-cachan.fr/~dosreis/C++/FAQ C++ FAQ Lite en VF: http://www.ifrance.com/jlecomte/c++/c++-faq-lite/index.html Site de usenet-fr: http://www.usenet-fr.news.eu.org
Zouplaz
Vincent Lascaux - :
Voici la méthode en entier, mais elle est pas compilable sans tout le reste
Le but de la demande etait en partie de te forcer à isoler ton probleme dans un code le plus court possible. Il y a fort à parier que ton probleme est du à un acces douteux à la mémoire dans une autre partie du programme. La démarche de supprimer des fonctionnalités et des bouts de code te permettra de retrouver (avec de la patience et de la chance) l'endroit où est le code qui met le systeme dans un état instable.
Bon, voila le code le plus court qui reproduise le problème :
#include <string>
int main(int argc,char *argv[]) { std::string truc; std::string pouet;
Un breakpoint sur return 0 montre que le contenu de la variable "truc" est n'importe quoi.
Si je remplace par truc = pouet + ".000" + 'c';
Ca marche, le contenu est "hello.000c"
Plateforme : Windows 2000 / Visual Studio Net 7.0 - Code ci dessus compilé en mode SUBSYSTEM = CONSOLE.
Je pense que quelque chose doit merder dans les options de compilation mais je n'utilise rien de spécial.
Vincent Lascaux - nospam@nospam.org :
Voici la méthode en entier, mais elle est pas compilable sans tout le
reste
Le but de la demande etait en partie de te forcer à isoler ton
probleme dans un code le plus court possible. Il y a fort à parier que
ton probleme est du à un acces douteux à la mémoire dans une autre
partie du programme. La démarche de supprimer des fonctionnalités et
des bouts de code te permettra de retrouver (avec de la patience et de
la chance) l'endroit où est le code qui met le systeme dans un état
instable.
Bon, voila le code le plus court qui reproduise le problème :
#include <string>
int main(int argc,char *argv[])
{
std::string truc;
std::string pouet;
Voici la méthode en entier, mais elle est pas compilable sans tout le reste
Le but de la demande etait en partie de te forcer à isoler ton probleme dans un code le plus court possible. Il y a fort à parier que ton probleme est du à un acces douteux à la mémoire dans une autre partie du programme. La démarche de supprimer des fonctionnalités et des bouts de code te permettra de retrouver (avec de la patience et de la chance) l'endroit où est le code qui met le systeme dans un état instable.
Bon, voila le code le plus court qui reproduise le problème :
#include <string>
int main(int argc,char *argv[]) { std::string truc; std::string pouet;
Pourquoi n'utilises-tu pas un stringstream ? Ici il me semble qu'un string est créé et dupliqué à chaque appele de l'operateur '+'
Et tu pourras en plus entrer directement tes entiers dans le flux (plus de itoa :-)
-------------------------------------------- Benoît Rousseau : roussebe at spray dot se Jouez en programmant : http://realtimebattle.sourceforge.net/
Zouplaz
Mickael Pointier - :
Tu es en Release, ou en Debug ?
Est-ce que ca fait pareil si tu _utilises_ "truc", par exemple en rajoutant un cout<<truc; juste avant le "return 0;" ?
En debug. Il y a un bug dans le debugger de vsnet 2002 qui empêche la visualisation correcte du contenu d'une std::string si elle fait + de 16 caractères. Il faut bidouiller un fichier pour que ça fonctionne.
Maintenant j'ai un autre problème du même genre : machaine.c_str() fonctionne si la chaine fait moins de 16 char et pas si elle en fait plus...
Je commence à fatiguer !
Mickael Pointier - mpointie@eden-games.moc :
Tu es en Release, ou en Debug ?
Est-ce que ca fait pareil si tu _utilises_ "truc", par exemple en
rajoutant un cout<<truc; juste avant le "return 0;" ?
En debug. Il y a un bug dans le debugger de vsnet 2002 qui empêche la
visualisation correcte du contenu d'une std::string si elle fait + de 16
caractères. Il faut bidouiller un fichier pour que ça fonctionne.
Maintenant j'ai un autre problème du même genre : machaine.c_str()
fonctionne si la chaine fait moins de 16 char et pas si elle en fait
plus...
Est-ce que ca fait pareil si tu _utilises_ "truc", par exemple en rajoutant un cout<<truc; juste avant le "return 0;" ?
En debug. Il y a un bug dans le debugger de vsnet 2002 qui empêche la visualisation correcte du contenu d'une std::string si elle fait + de 16 caractères. Il faut bidouiller un fichier pour que ça fonctionne.
Maintenant j'ai un autre problème du même genre : machaine.c_str() fonctionne si la chaine fait moins de 16 char et pas si elle en fait plus...