Bonjour a tous, j'ai un petit soucis concernant la fonction malloc et snprintf:
Voila le sequencement de mon programme:
  1. lecture des donnees dans un pipe (ex de donnees lues: 0xFDOO1F4142..... c'est du texte code en ASCII ne depassant pas 100 caracteres)
  2. allocation dynamique de memoire de la taille des donnees lues dans le pipe
  3. ecriture du message recu dans le pipe dans un ficher texte


Voici le code isole effectuant ces operations:
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
char *pMessageToSend;
int i;
char messageToReceive[1024];
 
fileRead  = ReadFile(
                  gphAutomaticTestTool_HandlePipe,
                  messageToReceive,
                  1024,
                  &bytesRead,
                  NULL);
 
pMessageToSend = malloc(bytesRead);
 
for(i = 0; i < bytesRead; i++)
                        {
                        snprintf(&pMessageToSend[i],
			sizeof(pMessageToSend),
			"%c",
			messageToReceive[i]);
                        }
 
written = fwrite(pMessageToSend,
                        1,
                        strlen(pMessageToSend),
                        gpphAutomaticTestTool_ErrorFile);
 
free(pMessageToSend);
Le probleme que je rencontre est: The memory at "0x79c...." could not be read ou un probleme de socket error 10055.

J'ai probablement mal utilise snprintf ou le malloc. Merci de votre lumiere.