Ciao a tutti,
il mio obbiettivo e' settare tutti i bits di un array di struct che contiene dei bit fields al valore "1". Una cosa che sapevo dall'esperienza ma che non so spiegare con esattezza e' il fatto che la memset non funziona, nel senso che mi inizializza solo il primo campo della struct di ogni elemento dell'array e non tutti i bit appartenenti ad essa; la mia domanda e' perche'? Ho una reminescenza riguardo al fatto che e' un problema dipendente dalla memset ma non so indirizzarlo alla risposta finale.
Allego un po' di codice in modo che possa essere piu' chiaro il mio caso
typedef struct testStruct_s
{
int var : 2;
int var2 : 2;
} testStruct_t;
void main()
{
testStruct_t structure[2];
// Supponiamo scriva nella mia struct qualcosa
structure[0].var = 3;
structure[0].var2 = 2;
structure[1].var = 2;
structure[1].var2 = 3;
memset(structure,1 , sizeof(structure));
}
In questo caso var avra' il valore "1" mentre var2 sara' a "0".
Le volte che ho dovuto settare qualche valore in campi di questo tipo ho sempre preso campo per campo e settato un valore.
Grazie mille per il supporto.