[Programación] Re: [Programación] duda profunda sobre char * strc
py(char*,const char*)
Pablo
programacion@lugro.org.ar
Thu, 10 Jun 2004 21:43:19 -0300
Ademas de que strcpy() no hace el malloc(), no te olvides de
agregarle espacio para el nulo al final de la cadena. Recorda que
strcpy() copia también el NULL que termina la cadena, y si no
reservas lugar para el, sobrescribís alguna parte del programa.
Este ejemplo tal vez ayude:
---------------------
#define S1 "Cadena uno"
#define S2 "Cadena dos"
#define S3 "Cadena tres"
#define CERO_TERMINADA 1
int main(int argc, char* argv[])
{
char **m = NULL;
int q = 3;
m = (char**) malloc ( q * sizeof(char*) );
*m = NULL; // m[0]
*(m+1) = NULL; // m[1]
*(m+2) = NULL; // m[2]
m[0] = (char*) malloc ( (strlen(S1) + CERO_TERMINADA) * sizeof(char) );
m[1] = (char*) malloc ( (strlen(S2) + CERO_TERMINADA) * sizeof(char) );
m[2] = (char*) malloc ( (strlen(S3) + CERO_TERMINADA) * sizeof(char) );
strcpy (m[0], S1);
strcpy (m[1], S2);
strcpy (m[2], S3);
free(*m);
free(m[1]);
free(m[2]);
*m = NULL;
*(m+1) = NULL;
*(m+2) = NULL;
m = NULL;
return 0;
}
---------------------
----- Original Message -----
From: "federico luna" <fedeml@yahoo.com.ar>
To: <programacion@lugro.org.ar>
Sent: Thursday, June 10, 2004 9:53 PM
Subject: Re: [Programación] duda profunda sobre char * strcpy(char*,const
char*)
> strcpy nunca hace malloc, solo hace cpy :)
>
> -fedel
> tecso:
>
> --- Horacio Castellini <horacio9573@yahoo.com.ar>
> escribió: > Holas amigos programadores....
> >
> > Tengo una duda, que es significativa a la hora de
> > aparcer o no put* bug.
> >
> > supongamos el siguiente caso... omito las
> > seguridades de rebase...