quindi ho una struct
:Come inizializzare correttamente una variabile const const const?
typedef struct myStruct
{
const int *const array_ptr;
} myStruct_s;
Ho un const
serie di int
:
const int constArray[SIZE1] =
{
[0] = 0,
[1] = 1,
[2] = 2,
//...
};
Ora ho un const
serie di myStruct_s
inizializzato con intializers designati:
const myStruct_s structArray[SIZE2] =
{
[0] =
{
.array_ptr = &constArray
},
//...
}
Ricevo l'avviso:
un valore di tipo "const int (*) [SIZE1]" non può essere utilizzato per inizializzare un un'entità di tipo "const int * const"
Come posso inizializzare correttamente questo puntatore?
vorrei evitare:
const myStruct_s structArray[SIZE2] =
{
[0] =
{
.array_ptr = (const int *const) &constArray
},
//...
}
Se possibile, dal momento che mi sento come dico il compilatore "Non so quello che sto facendo, solo che non controllare il tipo di favore" ...
Grazie per il vostro aiuto :).
'array_ptr = & constArray [0];' – Nadir
Gli indici di matrice iniziano da 0. I tuoi compiti ('[1] = 1') iniziano da 1. Non sono correlati al problema, ma sembrano sospetti. – davmac
@davmac: hai ragione! In realtà io uso 'enum' come indici per riempire gli array. Non uso mai numeri magici :). Ho semplificato il mio codice un po 'troppo velocemente! – Plouff