probleme avec les string sur ITA2 64 bits!
Bonjour!
Voila j'ai ecris ce programme pour tester une petite chose :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
|
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <iostream>
int main (int argc, char *argv[])
{
std::string s = "abcdefghijklmnop" ;
int size = s.size();
printf ("taille de la chaine = %d\n", size) ;
printf ("test 1\n") ; fflush (stdout) ;
std::string res (s, size - 4) ;
printf ("chaine resultante = %s\n", res.c_str()) ;
printf ("test 2\n") ; fflush (stdout) ;
res = s.substr(size - 4) ;
printf ("chaine resultante = %s\n", res.c_str()) ; fflush (stdout) ;
return EXIT_SUCCESS;
} |
Je compile de la maniere suivante :
Et ensuite, le link :
Pour une execution donnant ceci :
Code:
1 2 3 4 5 6
|
taille de la chaine = 16
test 1
chaine resultante = mnop
test 2
Erreur de segmentation |
En clair, il plante sur le substring alors qu'il ne me semble pas y avoir de raison particuliere...
Avez vous une idee?
J'ai compile ici avec icpc mais je pense qu'avec g++, le comportement est le meme...
La machine sur laquelle je fais tourner ce programme est un itanium2 64bits.
Si je ne suis pas sur le bon forum, je m'en excuse!
Merci!