On Tue, Mar 11, 2003 at 04:11:36PM -0300, Mat�as nnss wrote:
> char * regreso; strcpy(regreso, "");

El problema ah� lo tendr�s si no est�s reservando memoria para el
string regreso, o si no est�s reservando suficiente memoria para lo que
vas a escribir ah� con el strcpy, pues este no reserva memoria, s�lo
copia. Sacado del man de strcpy():

"Si la cadena destino de un strcpy() no es bastante  grande
       (esto  es, si el programador fue est�pido o perezoso, y no
       comprob� el tama�o antes de la copia) entonces puede ocur�
       rir cualquier cosa.  Provocar el desbordamiento de cadenas
       de caracteres de longitud fija es una t�cnica favorita  de
       los piratas inform�ticos."

Una opci�n (a parte de usar t� mismo el malloc) para reservar la memoria
justa que necesitas para la cadena
es utilizar strdup, que te crea un duplicado del string que le pases
reservando la memoria necesaria:  char *strdup(const char *s);

> Pero bueno, eso me lo merezco por querer aprender C yo solito.

Equivocarse es una buena forma de aprender as� que no desesperes.

Un saludo.

Responder a