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 : Sélectionner tout - Visualiser dans une fenêtre à part
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