Foros del Web » Programación para mayores de 30 ;) » C/C++ »

double free or corruption (!prev)

Estas en el tema de double free or corruption (!prev) en el foro de C/C++ en Foros del Web. Buenas noches! Soy nuevo en el foro y quiero pedir ayuda con un error que no comprendo muy bien, el código es el siguiente y ...
  #1 (permalink)  
Antiguo 18/10/2012, 00:38
 
Fecha de Ingreso: octubre-2012
Mensajes: 1
Antigüedad: 12 años, 1 mes
Puntos: 0
double free or corruption (!prev)

Buenas noches! Soy nuevo en el foro y quiero pedir ayuda con un error que no comprendo muy bien, el código es el siguiente y su función es crear un hilo que mueva una figura o qlabel en la pantalla de forma indefinida. Si creo dos o tres hilos la aplicación corre bien y funciona perfecto pero al agregar 4 o mas aunque no se pone lenta la ejecución el programa se cae



#include "mythread.h"
#include <QWidget>
#include "animacion.h"


MyThread::MyThread(QObject *parent) : QThread(parent) {

x=0; y=80;
movimiento= (int *)malloc(sizeof(int)); *movimiento=0;
movimientoReversa= (int *)malloc(sizeof(int)); *movimientoReversa=0;
yaPaso= (int *)malloc(sizeof(int)); *yaPaso=-1;
movimientoReversaX= (int *)malloc(sizeof(int)); *movimientoReversaX=0;
ex=new Extras();

}

//metodo run que mueve la imagen

void MyThread::run(){
for( ; ; ){
if(*movimientoReversaX==0){
this->x+=5;
if(this->x>ancho-101){
*movimientoReversaX=1;
}
}else{
this->x-=5;
if(this->x<2){
*movimientoReversaX=0;
}
}
ex->msleep(40);
imagen->move(x,y);
}
}

//Con este metodo creo la imagen y la pego en el frame

void MyThread::pintar(QFrame *w){
ancho=w->width();
alto=w->height();
imagen=new QLabel(w);
mov=new QMovie(":/prueba.gif");
imagen->setMovie(mov);
imagen->setParent(w);
imagen->setGeometry(10,80,200,200);
imagen->show();
mov->start();
}


y el error que causa es este

*** glibc detected *** /home/richard/Documentos/SistemasO/Proyecto/Proyecto/Proyecto-build-desktop-Qt_4_8_1_in_PATH__System__Debug/Proyecto: corrupted double-linked list: 0x089a24b4 ***
The program has unexpectedly finished.


No comprendo bien que causa este error si alguien me pudiera dar al menos una pista lo agradecería montones

Etiquetas: c++, glibc, threads
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 05:23.