Отчет Valgrind "переполнение сегмента brk в потоке #1" [дубликат]

этот вопрос уже есть ответ здесь:

интересно, что означает это сообщение:

==18151== brk segment overflow in thread #1: can't grow to 0x4a26000

обратите внимание, что код работает нормально, и вывод правильный. Мне просто проигнорировать это сообщение? И что это значит?

1 ответов


Я думаю, что вы можете игнорировать его. Я получил сообщение в новом распределении в некотором коде, который, казалось, работал отлично, и я также получаю сообщение в следующем коде:

#include <vector>

struct Something
{
    Something() : a1(0), b1(0) { }
    unsigned short a1;
    unsigned short b1;
};

const int allocsize = 10000;

struct Tester
{
   Tester()
   {
       for (int u = 0; u < allocsize; ++u)
           data.push_back(new Something[519]);
   }

   ~Tester()
   {
       for (int u = 0; u < allocsize; ++u)
           delete[] (data[u]);
   }

   std::vector<Something*> data;
};

void test()
{
     Tester t;
     // while (true) {;}
}

int main()
{
    test();
    return 0; 
}

Я также заметил, что другие испытывают те же проблемы:

Valgrind сообщает о переполнении сегмента