Bonjour,

j'ai récupérer du code source qui défini une structure I2C_UNIT:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
struct I2C_UNIT
{   
Hal_Queue_UnknownSize<I2C_WORD> m_dataQueue;
size_t                          m_bytesTransferred;
size_t                          m_bytesToTransfer;
BOOL                           m_fRead;
 
BOOL I2C_Initialize();
BOOL I2C_Uninitialize();
BOOL I2C_Enqueue( I2C_ACTION* action);
void I2C_Cancel( I2C_ACTION* action, bool signal );
};
Je souhaite allouer de la mémoire pour un tableau 2 dimensions de cette structure:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
int j = 0;
 
I2C_UNIT** tActionU= (struct I2C_UNIT**)calloc(6,sizeof(struct I2C_UNIT*));
 
for(j = 0; j < 6; j++) *(tActionU+j)= (struct I2C_UNIT*)calloc(1,sizeof(struct I2C_UNIT));
Mon programme fonctionne correctement lorsque je n'alloue pas la mémoire, mais il reste bloquer sur ces lignes de codes lorsque je les ajoutent.

Auriez-vous une idée?

Cordialement,
Lionel.