gcc, bad_alloc
Почему то следующий код выдаёт исключение bad_alloc, после создания ~ 22 000 экземпляров массива, число может немного меняться и от размера создаваемого массива не зависит. С выделением памяти проблем вроде бы быть не должно. Собирал gcc-4.1 и 4.3. Собранный MinGW под виндой работает нормально. Собственно если есть ошибка то где она?
#include <iostream>
using namespace std;
void munic(int* res);
int cntErr;
int main(int argc, char** argv)
{
cntErr = 0;
int cntSize = 30000;
int* res;
for(int cnt = 0; cnt < cntSize; cnt++)
{
cout << cnt << '\t';
munic(res);
}
return 0;
}
void munic(int* res)
{
try
{
int arrSize = 100;
res = new int(arrSize);
for(int cnt = 0; cnt < arrSize; cnt++)
{
res[cnt] = 0;
}
}
catch(bad_alloc& err)
{
cout << err.what() << '\t' << cntErr << '\n';
cntErr++;
}
}