To jest kontynuacja kolejnego question Mam.Inicjalizacja tablic ciągów
Rozważmy następujący kod:
char *hi = "hello";
char *array1[3] =
{
hi,
"world",
"there."
};
To nie kompiluje ku mojemu zdziwieniu (widocznie nie znam składni C jak myślałem) i generuje następujący błąd:
error: initializer element is not constant
Jeśli zmienię char * do char [] kompiluje grzywny:
char hi[] = "hello";
char *array1[3] =
{
hi,
"world",
"there."
};
Czy ktoś mógłby wyjaśnić mi, dlaczego?
dzięki. czy istnieje sposób użycia słowa kluczowego const, aby pierwszy kod działał? – lang2
@ lang2 Nie w tym zakresie. Zobacz ten [C FAQ] (http://c-faq.com/ansi/constasconst.html). Nawet z 'char * const hi' (stały wskaźnik do char). – cnicutar
Po prostu coś dodałem, ale nie jestem pewien, czy to zadziała ... twoja pierwsza wersja kompiluje OK w C++ - Spróbuję z kompilatorem C kiedy dostanę chwilę :) – icabod