Questa è una continuazione di un'altra question che ho.inizializzazione stringa array
Si consideri il seguente codice:
char *hi = "hello";
char *array1[3] =
{
hi,
"world",
"there."
};
non si compila con mia grande sorpresa (a quanto pare non so la sintassi C, così come ho pensato) e genera il seguente errore:
error: initializer element is not constant
Se cambio il char * in char [] si compila bene:
char hi[] = "hello";
char *array1[3] =
{
hi,
"world",
"there."
};
qualcuno può spiegarmi perché?
grazie. c'è un modo per usare la parola chiave const per far funzionare il primo pezzo di codice? – lang2
@ lang2 Non incluso in questo ambito. Vedi questo [C FAQ] (http://c-faq.com/ansi/constasconst.html). Neanche con 'char * const hi' (puntatore costante al carattere). – cnicutar
Appena aggiunto qualcosa, anche se non so se funzionerà ... la tua prima versione compila OK in C++ - Proverò con un compilatore C quando mi prendo un momento :) – icabod