Bonjour ,

dans la portion de code suivante:

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;
	    }
j'ai un plantage au niveau du realloc => Errreur allocation de memoire

Je libere bien la memoire apres traitemement comme ce-ci:

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;
  }
d'ou peux provenir le probleme ?
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.