Código
#include <iostream> int main() { const int i = 2; static char cadena[i]; return 0; }
El error:
Código:
error: storage size of ‘cadena’ isn’t constant
¿Por qué me da este error? Sin embargo si quito el static, no da error.
El motivo de querer que sea static es para hacer algo similar a esto:
Código
char *Clase::obtenerNombre(char * nombre) const { if (m_nombre) { static char nom[len]; nombre = nom; return nombre; } }
m_nombre es un atributo de la clase "Clase" y que está definido de la siguiente forma:
Código
char *m_nombre;
Defino el array nom estático, para que el usuario de la clase no tenga que preocuparse de liberar memoría con delete. Estoy obligado a usar char * y no std::string.
Gracias de antemano