Esta es la continuación de otra question que tengo.inicialización del conjunto de cadenas
Considere el siguiente código:
char *hi = "hello";
char *array1[3] =
{
hi,
"world",
"there."
};
No compila para mi sorpresa (al parecer no sé la sintaxis de C, así como yo pensaba) y genera el siguiente error:
error: initializer element is not constant
Si cambio la char * a char [] se compila bien:
char hi[] = "hello";
char *array1[3] =
{
hi,
"world",
"there."
};
Puede alguien explicarme por qué?
gracias. ¿Hay alguna manera de usar la palabra clave const para hacer que la primera pieza de código funcione? – lang2
@ lang2 No en ese alcance. Ver esto [C FAQ] (http://c-faq.com/ansi/constasconst.html). Ni siquiera con 'char * const hi' (puntero constante a char). – cnicutar
Acabo de agregar algo, aunque no estoy seguro de si funcionará ... su primera versión compila OK en C++ - Lo intentaré con un compilador de C cuando tenga un momento :) – icabod