Ver Mensaje Individual
  #2 (permalink)  
Antiguo 05/08/2009, 02:09
Avatar de Eternal Idol
Eternal Idol
 
Fecha de Ingreso: mayo-2004
Ubicación: Lucentum
Mensajes: 6.192
Antigüedad: 20 años
Puntos: 74
Respuesta: [ERROR EN PROGRAMA]****glibc detected *** double free or corruption (!prev

El problema es muy simple, no estas reservando espacio suficiente y por lo tanto estas corrompiendo la memoria. El metodo size devuelve el numero de CARACTERES de la cadena y esto no incluye el 0 terminador. Por ejemplo si la cadena era "HOLA" size devuelve 4, es lo que reservas con new, y despues llamas a strcpy que va a copiar "HOLA" y el 0 terminador de cadena.

En cualquier caso me parece que estas perdiendo el tiempo con memoria dinamica cuando la solucion mas simple y logica no es crear una copia del string sino usar un casting con el metodo que ya usas (c_str) para obtener su contenido.

Código:
status = send(m_sock,  data.c_str() + total, bytesleft, 0);
__________________
¡Peron cumple, Evita dignifica! VIVA PERON CARAJO