Bonjour,
Actuellement, j'ai une erreur avec ce code :
Alors que ce code marche :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3arg << "foo" std::string c; arg >> c;
Alors qu'en théorie, au niveau assembleur, cela devrait être exactement la même chose.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 const char * const foo = "foo"; arg << foo; std::string c; arg >> c;
Or je ne copie que le pointeur vers la chaîne de caractères dans "arg" puis j'essaye de copier la chaîne de caractère dans c.
Sauf que le pointeur stocké est "inaccessible" dans le premier cas d'après le débogueur ce qui génère une segfault lorsque je fais : arg >> c.
Si je fais :
C'est à dire juste une copie du pointeur stocké dans arg vers c, j'ai aussi, dans le premier cas, une erreur de segmentation.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 const char * c; arg >> c; std::cout << c << std::endl;
J'ai l'impression que "foo" n'est pas stocké dans le même segment mémoire d'un cas à l'autre... est-ce que vous auriez une explication à cela?
Partager