Programación General => C/C++ => Mensaje iniciado por: Eduardo_Garcia en Jueves 26 de Mayo de 2005, 15:51
Título: Almacenar Texto En Memoria
Publicado por: Eduardo_Garcia en Jueves 26 de Mayo de 2005, 15:51
Hola, puede que para los avanzados sea una pregunta un poco tonta, pero llevo varios dias buscando por todas partes sin hallar solucion.
#include <iostream>
int main() { char frase[14] = "Hola, me llamo "; std::cout << frase << "Manolo\a" << std::endl;
return 0; }
En una pagina lei un codigo muy parecido a este, pero al meterlo en el Dev-C++ e intentar compilarlo me dice:
5 C:\C\run.cpp initializer-string for array of chars is too long
He probado algunos otros codigos pero siguen sin funcionar. Lo unico que quiero es poder almacenar un texto para no tener que escribirlo en std::cout cada vez que lo vaya a usar.
Título: Re: Almacenar Texto En Memoria
Publicado por: shakka en Jueves 26 de Mayo de 2005, 17:02
Citar
5 C:\C\run.cpp initializer-string for array of chars is too long
esto es porque la cadena contiene mas caracteres(15+mas fin de linea"\0") que el espacio reservado en el arreglo frase[14] ...
Título: Re: Almacenar Texto En Memoria
Publicado por: JuanK en Jueves 26 de Mayo de 2005, 20:50
de hecho la frase tiene un espacio al final asi que deberias tener el array de 16.
Título: Re: Almacenar Texto En Memoria
Publicado por: pitukilloloco en Jueves 26 de Mayo de 2005, 22:50
Para evitar contar los caracteres C te permite declarar una constante de cadena sin especificar el número de bytes. Por ejemplo, en tu caso lo declararías así:
Código: Text
char frase[] = "Hola, me llamo ";
Al declararlo de esta manera, el compilador se encarga de solicitar el suficiente espacio para que la cadena Hola, me llamo más el caracter nul '\0' quepan en el arreglo de caracteres frase
Título: Re: Almacenar Texto En Memoria
Publicado por: Eduardo_Garcia en Viernes 27 de Mayo de 2005, 15:59
Vuestras respuestas me han sido muy utiles, muchas gracias por la ayuda. :rolleyes: