So habe ich ein struct
:Wie initialisiere ich eine const int const * Variable?
typedef struct myStruct
{
const int *const array_ptr;
} myStruct_s;
Ich habe eine const
Array von int
:
const int constArray[SIZE1] =
{
[0] = 0,
[1] = 1,
[2] = 2,
//...
};
Jetzt habe ich eine const
Reihe von myStruct_s
mit designierten Initialisierer initialisiert:
const myStruct_s structArray[SIZE2] =
{
[0] =
{
.array_ptr = &constArray
},
//...
}
Ich bekomme die Warnung:
ein Wert vom Typ "const int (*) [SIZE1]" kann nicht eine Einheit vom Typ "const int * const"
Wie kann ich richtig diesen Zeiger initialisieren initialisiert werden?
Ich möchte vermeiden:
const myStruct_s structArray[SIZE2] =
{
[0] =
{
.array_ptr = (const int *const) &constArray
},
//...
}
Wenn möglich, da ich fühle mich wie ich den Compiler sagen „Ich weiß nicht, was ich tue, sondern nur die Art nicht überprüfen Sie bitte“ ...
Danke für Ihre Hilfe :).
'array_ptr = & constArray [0];' – Nadir
Array-Indizes beginnen bei 0. Ihre Zuweisungen ('[1] = 1') beginnen bei 1. Nicht im Zusammenhang mit dem Problem, aber sieht verdächtig aus. – davmac
@davmac: Sie haben Recht! Tatsächlich benutze ich 'enum' als Indizes, um die Arrays zu füllen. Ich benutze nie magische Zahlen :). Ich habe meinen Code etwas zu schnell vereinfacht! – Plouff