Ver Mensaje Individual
  #2 (permalink)  
Antiguo 10/05/2006, 10:51
Nivel7
 
Fecha de Ingreso: abril-2006
Ubicación: Acapulco Gro. México
Mensajes: 483
Antigüedad: 18 años, 8 meses
Puntos: 2
solo veo 2 errores, como en la remimencion de tu vector,
ya que redimecionas empezando por 1, cuando supongo que lo que quieres es mantener la primer cadena. lo correcto seria redimencionar 2,3,4,etc

el otro error es querer acceder a vectores no creados.
dentro del ultimo for usas como limite del bucle 10 cuando seria 3.

la otra es que no liberaste la memoria.

#include <stdio.h>
#include <stdlib.h>
#include <string.h>


int main ()
{
int i, lon;

char **vector;

char palabra[15];

vector=(char**)malloc(sizeof(char*));
gets(palabra);
lon=strlen(palabra)+1;
vector[0]=(char*)malloc(lon*sizeof(char));
strcpy(vector[0], palabra);
puts(vector[0]);

for (i=1;i<3;i++)
{
gets(palabra);
lon=strlen(palabra)+1;
vector=(char**)realloc(vector,(i+1)*sizeof(char*)) ;//Si lo que quieres es aumentar una cadena mas es redimencionar a 2
vector[i]=(char*)malloc(lon*sizeof(char));
strcpy(vector[i], palabra);
puts(vector[i]);
}

for (i=0;i<3;i++)// No puedes acceder a vecotes no recervados, solo tienes 3.
{
puts(vector[i]);
free(vector[i]);
}
free(vector);
return 0;
}

Saludos