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:
Mon programme plante quand nb_of_points passe de 1300 à 1500.
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
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
Partager