Estoy intentando hacer una funcion que pueda coger palabras separadas por comas en una cadena.
Creo una cadena para guardar la palabra que quiero coger de esta manera:
char *cadena;
y le asigno un tamaño dinamicamente con:
cadena = new char[3];
pero el problema es que cuando veo la longitud de la cadena con strlen me devuelve que el tamaño es mayor del que he reservado.
¿Alguna idea?.
No entiendo el problema, de todas formas lo intento:
1.- Si lo que haces es strlen(cadena) y te da un numero mas grande que tres es porque en cadena no hay un caracter nulo que indique el fin.
2.- Si lo que pasa es que en cadena no cabe la palabra entera, reserva la memoria más tarde cuando ya sepas el tamaño.
Me decanto por la 1 ^_^
Sync
Yo tambien voto por la 1º,
y ademas te aconsejo que utilices la clase basic_string que esta en C++ y esta clase a la larga te evitara problemas de gestion de espacio, como el que parece que te ocurre.
Sync, por cierto, mú bien por el trabajo que estas haciendo en estos foros :)
Un saludo.
En general STL te saca de un huevo de problemas aunque te mete en muchos otros xD
Pues si que era pq no tenia el caracter de fin de linea :).
Ande tendre la cabeza :P
Gracias a todos por la ayuda.