[C con Clase] Segmentation fault al ejecutar la sentencia free() en una función
Emilio Manzaneque
emanzaneque en orange.es
Mie Oct 29 10:58:26 CET 2014
Hola a todos,
Cuando ejecuto una función con malloc/free por segunda vez obtengo un error
de “segmentation fault” justo al ejecutar por segunda vez la sentencia
“free”.
El código es el siguiente:
char *inserta(char* mensaje, char* cadena, int posicion)
{
char *salida = NULL;
int lcadena;
char paso;
int offset = 0;
salida = (char*) malloc(512);
//copia la parte de la cadena antes de la posición de inserción
for (int i = 0; i < posicion; i++)
{
memcpy(salida,mensaje,1);
salida++;
mensaje++;
}
//inserta la cadena en este punto
lcadena = longitud(cadena);
for (int i = 0; i < lcadena; i++)
{
memcpy(salida,cadena,1);
salida++;
cadena++;
}
//acaba de completa la cadena de salida con el resto del mensaje
while (*mensaje)
{
memcpy(salida,mensaje,1);
salida++;
mensaje++;
offset++;
}
*salida = 0x00;
salida -= (posicion + lcadena + offset);
memcpy(cadena,salida,(posicion + lcadena + offset));
free(salida)
return cadena;
}
¿Alguna idea?
Muchas gracias
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.conclase.net/pipermail/cconclase_listas.conclase.net/attachments/20141029/5a164ae8/attachment.html>
Más información sobre la lista de distribución Cconclase