terminate called after throwing an instance of 'std::bad_alloc' what(): std::bad_alloc
-
QTimer timer = new QTimer(this);
timer->start(1000);
connect(timer,SIGNAL(timeout()),this,SLOT(updateTimer()));Every 1 second, function works.
my system the linux. Runs suddenly dies.-----global------- static int arrayNum[33000]; -------------------
updateTimer(){
unsigned short int** US_INT;
US_INT= new unsigned short int*[255];
for(int i = 0; i < 255; i++)
{
US_INT[i] = new unsigned short int[128];
memset(US_INT[i], 0, sizeof(unsigned short int) * 128);
}
double x;
double y;
int cnt= 0;
int nArrayCount=0;
for(int i = 0; i < 255; i++)
{for(int j=0;j<128;j++){ x=j; y=cnt nArray[nArrayCount]=US_INT[i][j]; nArrayCount++; } cnt=cnt+(256/255); } for(int i = 0; i < 255; i++) { delete US_INT[i]; } delete[] US_INT;
}
program stop. and message↓
terminate called after throwing an instance of 'std::bad_alloc' what(): std::bad_alloc -
Hi
It might be one of you new statements
you can trytry {
code using new
}
catch (const std::bad_alloc&) {
qDebug() << "alloc error";
}also the arrayNum[33000];
what do u u do with it?
You use nArray in function. is that arrayNum ? -
3/3