Error asignación de memoria en C

Hola tengo un problema de asignación de memoria dinámica en el siguiente código en tiempo de ejecución y no sé por qué:
#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=(char*)malloc(lon*sizeof(char));
strcpy(vector, palabra);
puts(vector);
}
for (i=0;i<10;i++)
{
puts(vector);
}
return 0;
}

1 respuesta

Respuesta
1
Esta bien raro tu código, pero en fin, supongo que el error esta en la linea:
vector=(char**)malloc(sizeof(char*));
deberia ir un
vector=(char**)malloc(30);
O algo así...
Ademas dimensionas solo el vector[0] pero después pegas valores en el 1 y 2..

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas