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;
}
#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 de kip289
1