Problema con asignacion de memoria dinamica

marta
11 de Mayo del 2006
Hola tengo problemas con el siguiente codigo de asignación dinamica. Si alguien puede indicarme donde está el error se lo agradecería:

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


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*sizeof(char*));
vector[i]=(char*)malloc(lon*sizeof(char));
strcpy(vector[i], palabra);
puts(vector[i]);

}

for (i=0;i<10;i++)
{
puts(vector[i]);
}

return 0;
}

Graciñas

fco.ventura
11 de Mayo del 2006
#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*));
vector[i]=(char*)malloc(lon*sizeof(char));
strcpy(vector[i], palabra);
puts(vector[i]);
}
for (i=0;i<3;i++) {
puts(vector[i]);
free(vector[i]);
}
free(vector);
return 0;
}

marta
11 de Mayo del 2006
Graciñas fco.ventura