Lecture d'un élément de structure
J'ai un code dans lequel l'élément de structure pointé par pData doit contenir la valeur (int ou long) 1
la structure (liste chainée) dans un fichier header
Code:
1 2 3 4 5 6 7 8
|
struct HWMCA_DATATYPE_S {
UCHAR ucType;
ULONG ulLength;
PVOID pData;
struct HWMCA_DATATYPE_S *pNext;
};
typedef struct HWMCA_DATATYPE_S HWMCA_DATATYPE_T; |
Pour exemple (le code n'est pas complet)
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
|
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <memory.h>
#include "header.h"
int main(int argc, char *argv[], char *envp[])
{
int j,i;
ULONG aulCmdData[10];
HWMCA_DATATYPE_T aHwmcaDataType[10];
for (i=5, j=0; (((i+2) <= argc) && (j < 10)); i+=2, j++) {
memset(&aHwmcaDataType[j],'\0',HWMCA_DATATYPE_SIZE);
aHwmcaDataType[j].pNext = &(aHwmcaDataType[j+1]);
aHwmcaDataType[j].ucType = (UCHAR)atoi(argv[i]);
aHwmcaDataType[j].ulLength = sizeof(short int);
aulCmdData[j] = atol(argv[i+1]);
aHwmcaDataType[j].pData = &aulCmdData[j];
}
return(0);
} |
argv[i+1] étant "1"
J'arrive à afficher l'ensemble du contenu des éléments de la structure SAUF pour celui pointé par pData.
J'ai essayé bon nombre de printf() dans tout les sens (même ce qui me semblait incorrecte) mais en résultat j'ai toujours soit rien du tout soit un affichage non conforme)
je ne suis jamais arrivé à avoir : 1
j'ai essayé un
Code:
1 2
|
printf("aHwmcaDataType[%d].pData :%ld",j,aHwmcaDataType[j].pData); |
sans plus de succès......
Qu'est ce que j'ai loupé ?