Push_back в векторе не удается с Malloc, не в состоянии назначить дополнительную память

StackOverflow https://stackoverflow.com//questions/9614772

Вопрос

У меня есть код, в котором вызов push_back не удается для меня. MDB дает мне следующую подсказку.

:: дем malloc + 0x49 ~ malloc + 0x49 ~== malloc + 0x49 ~ :: дем __1ciallocate4cpngrnc_jo__6fipta_3_ + 0x2a ~ __1ciallocate4cpngrnc_jo__6fipta_3_ + 0x2a ~== __type_0 * выделить :: дем __1cjallocator4cpngrnc_jo__iallocate6mi_p1_ + 0x20 ~ __1Cjallocator4cpngrnc_jo__iallocate6mi_p1_ + 0x20 ~== rnc_jo ** allocator :: allocate :: дем __1cgvector4cpngrnc_jo__kinsert_aux6mp1rk1_v_ + 0xac __1cgvector4cpngrnc_jo__kinsert_aux6mp1rk1_v_ + 0xac== void vector :: insert_aux :: дем __1cgvector4cpngrnc_jo__jpush_back6mrk1_v_ + 0x4e __1cgvector4cpngrnc_jo__jpush_back6mrk1_v_ + 0x4e== Void Vector :: push_back :: дем __1ciallocate4cpngrnc_jo__6fipta_3_ + 0x2a __1ciallocate4cpngrnc_jo__6fipta_3_ + 0x2a== __type_0 * выделить :: дем __1cgvector4cpngrnc_jo__jpush_back6mrk1_v_ + 0x4e __1cgvector4cpngrnc_jo__jpush_back6mrk1_v_ + 0x4e== Void Vector :: push_back`

Я не знаю, как это может быть исправлено? Я знаю, что существует выделенное пространство, которое на самом деле больше, чем размер вектор. Если это пространство используется, он будет переназначить и скопировать все данные на второе место.

Что я также знаю, что Vector macx_size является очень большим значением, и это не должно потерпеть неудачу для моего кода, так как я не вставляю так много значений. Можете ли вы дать мне знать, к чему я могу отладить?

Это было полезно?

Решение

Один из способов проверки - это отслеживать бесплатную память в вашей системе вместе с памятью, которую использует ваше приложение.

    .
  • Если использование памяти вашего приложения продолжает расти, то у вас, вероятно, утечка памяти.
  • Если есть меньше бесплатного памяти, чем потребности вашего приложения, у вас есть проблема в ресурсах.

Другие советы

Это кажется проблемой памяти, я сомневаюсь, что список ненормальный, прежде чем называется push_back. Мое предложение состоит в том, чтобы уменьшить операции на этом списке шаг за шагом, чтобы узнать, какая операция приводит к ненормальному списку.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top