Bonjour ,
dans la portion de code suivante:
j'ai un plantage au niveau du realloc => Errreur allocation de memoire
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 struct KprotoPckt{ uint8_t Type; // Type de trame uint16_t Checksum; // Reçue du Réseau uint16_t DataLength; // Reçue du Réseau uint8_t Serial[SERIAL_NUMBER_LENGTH]; // Numéro de série du produit uint8_t *Data; // Les données transportées }; if(KprotoPckt->Data) KprotoPckt->Data=realloc(KprotoPckt->Data,KprotoPckt->DataLength * sizeof(uint8_t *)); else KprotoPckt->Data=malloc(KprotoPckt->DataLength * sizeof(uint8_t *)); if(KprotoPckt->Data == NULL){ datation(); printf("Error: can't allocate memory for a RX packet !!! \n"); free(KprotoPckt->Data); return; }
Je libere bien la memoire apres traitemement comme ce-ci:
d'ou peux provenir le probleme ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 if(KprotoPckt.Data != NULL){ free(KprotoPckt.Data); KprotoPckt.Data=NULL; }
est ce une incompatibilite de mon systeme ? je suis sur XP ?
J'utilise Visual Studio 2005, peut etre qu'il existe une directive de compilation pour eviter cela ?
que veux dire le message exactement ? est ce que ca veut dire qu'il n'arrive plus a allouer du tas au niveau memoire ?
est ce au niveau de la memoire vive?
Est ce un probleme de cadrage au niveau memoire ?
j'ai 2go de ram.
Merci de votre aide.
Partager