memcpy ou ostringstream::write: erreur dans la taille des donnees
Bonjour à tous,
je souhaite serialiser un tableau 2D de float.
Dès que la taille du tableau dépasse 16KB, mon programme plante avec un segmentation fault dans memcpy (meme pour ostream::write).
Mon compilateur: MinGW 3.4.5 et son gdb
voici les 2 morceaux de code:
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 26 27
|
UINT nb_of_points = 100;
int nb_raw = 4;
float RawData[nb_of_points][nb_raw];
//..... remplissage du tableau
int RawDataSize = sizeof(float)*nb_raw*nb_of_points;
cout << "RawDataSize = " <<RawDataSize<<endl;
#ifdef MEMCOPY
char *RawDataMem =new char[RawDataSize];
memcpy(RawDataMem,&RawData[0][0],RawDataSize);
cout <<"size_t max size= " << sizeof(size_t)<<endl;
ostringstream RawOs;
RawOs.write(RawDataMem,RawDataSize);
string Rawstr =RawOs.str();
#else //MEMCOPY
ostringstream Ros;
for(int i=0;i<nb_of_points;i++){
Ros.write(reinterpret_cast<char *> (RawData[i]),(nb_raw*sizeof(float)));
}
string Rawstr= Ros.str();
#endif //MEMCOPY |
Mon programme plante quand nb_of_points passe de 1300 à 1500.
Je n'arrive pas à trouver une solution sur Google et je n'ai pas le source de "msvcrt!memcpy()" (derniere trace du debuggeur)
Merci de aide
Zerbynette