Сбой push_back в векторе с malloc, не в состоянии назначить дополнительную память - PullRequest
0 голосов
/ 08 марта 2012

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

:: дем таНос + 0x49 ~ таНос + 0x49 ~ == таНос + 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 ** распределитель :: выделить :: дем __1cGvector4CpnGrnc_JO__Kinsert_aux6Mp1rk1_v_ + 0xac __1cGvector4CpnGrnc_JO__Kinsert_aux6Mp1rk1_v_ + 0xac == пустой вектор :: insert_aux :: дем __1cGvector4CpnGrnc_JO__Jpush_back6Mrk1_v_ + 0x4e __1cGvector4CpnGrnc_JO__Jpush_back6Mrk1_v_ + 0x4e == аннулируются вектор:: 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 == аннулируются вектор :: push_back`

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

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

Ответы [ 2 ]

1 голос
/ 08 марта 2012

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

  • Если использование памяти вашим приложением продолжает расти, значит, у вас, вероятно, утечка памяти.
  • Если свободной памяти меньше, чем нужно вашему приложению, значит, у вас проблема с ресурсами.
0 голосов
/ 08 марта 2012

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

...