[C con Clase] [Bulk] arreglo de apuntadores

Steven Richard Davidson stevenrichard.davidson en gmail.com
Jue Nov 15 17:08:35 CET 2007


Hola ZeLion,

On 11/15/07, ZeLion <Zelion_cracking en yahoo.es> wrote:
> O dimensionar el puntero con el numero de palabras que quieras
>
>         char *b[3];                             // Crear un array de 3
> punteros
>         b[0] = (char*) malloc(6);       // Reservar 6 char para el puntero 1
>         b[0] = "hola1";                 // Insertar 6 char
>         b[1] = (char*) malloc(6);       // Reservar 6 char para el puntero 2
>         b[1] = "hola2";                 // Insertar 6 char
>         b[2] = (char*) malloc(6);       // Reservar 6 char para el puntero 3
>         b[2] = "hola2";                 // Insertar 6 char
>

Me temo que esto no es del todo correcto. Tienes que copiar las
cadenas literales a cada array. Es más cómodo usar 'strcpy()',

strcpy( b[0], "hola1" );
strcpy( b[1], "hola2" );
strcpy( b[2], "hola3" );

De lo contrario, estarías creando memoria, para luego obviarla al
asignar la dirección de memoria de cada cadena literal. Esto es
peligroso, porque no podríamos liberar la memoria previamente creada
al haber perdido cada dirección de memoria.


Hasta pronto,

Steven




Más información sobre la lista de distribución Cconclase