LINUX.ORG.RU

std::vector отрицательный size


0

2

не linux но достало.. в какие то моменты вектор возвращает отрицательный size, т.е. для 72 элементов возвращает -72

проект вдоль и поперек причесан через valgrind.

в нормальном linux и windows все нормально, но периодически в wince где gcc версии 4.4.0. ни кто про такое не слышал?

сейчас пофиксил типа (в хидере bits/stl_vector.h):

size_type                                                                                
      size() const                                                                             
      { return size_type(abs(this->_M_impl._M_finish - this->_M_impl._M_start)); }                  

★★★★★

Последнее исправление: anonymous2 (всего исправлений: 2)
Ответ на: комментарий от one_more_hokum

Вот это ^ хто напейсал?


(unsigned int) (-72) = 4294967224

А ЭТО ЧЬЁ? ослеп что ли, возьми и переставь местами и что не понятно?

anonymous2 ★★★★★
() автор топика
Ответ на: комментарий от one_more_hokum

Как в беззнаковой переменной самозародился знак? Я ответ сегодня увижу?

Вот это вы написали: (unsigned int) (-72) = 4294967224
И ответь сам на свой вопрос, Как в беззнаковой переменной самозародился знак?

anonymous2 ★★★★★
() автор топика
Ответ на: комментарий от anonymous2

Вспоминается мне, давным давно я тоже поимел схожую проблему. Но ошибка была, всё же, моей. За давностью времени с полпинка не вспомню, что и как я неправильно делал. Ищи ошибку в своём коде.

one_more_hokum ★★★
()
Ответ на: комментарий от one_more_hokum

>-- У меня появились сильные боли.

+ )))

quest ★★★★
()
Ответ на: комментарий от one_more_hokum

А ты, кстати, тот вектор, который некорректный размер отдаёт, не итераторами, случаем, конструируешь?

нет, обычное объявление, default constructor

anonymous2 ★★★★★
() автор топика
Ответ на: комментарий от anonymous2

> нет, обычное объявление, default constructor

А добавление данных? Не может такое случиться, что кто-то портит итераторы (если они используются)?

one_more_hokum ★★★
()
Ответ на: комментарий от one_more_hokum

>Не может такое случиться, что кто-то портит итераторы (если они используются)?

создатель кода портит память? да что он лох что ли? виноваты разработчики сраного gcc! да точно они, да без вопросов!

quest ★★★★
()
Ответ на: комментарий от quest

как оно тестировалось и как «работает» мы уже поняли )))


да вы я смотрю «упертый штангист», любите выдыхать через задний проход!

anonymous2 ★★★★★
() автор топика
Ответ на: комментарий от one_more_hokum

Не может такое случиться, что кто-то портит итераторы (если они используются)?


проявляется только для wince, я согласен на «портит итераторы» согласен на «мусор» в памяти, но получаю точные значения.

anonymous2 ★★★★★
() автор топика
Ответ на: комментарий от quest

виноваты разработчики сраного gcc!


о как вы полюбили gcc? что за ненависть, мама в детстве уронила что ли?

anonymous2 ★★★★★
() автор топика
Ответ на: комментарий от anonymous2

> проявляется только для wince

Моменты проявления локализованы во времени и коде? Или два раза в одну воронку не падают?

one_more_hokum ★★★
()
Ответ на: комментарий от anonymous2

это вас походу мама в детстве по ступенькам головой тащила, с тех пор вы и рассуждаете о коде в общих словах и без конкретных тестов

quest ★★★★
()
Ответ на: комментарий от quest

> создатель кода портит память? да что он лох что ли? виноваты разработчики сраного gcc!

Ну-у... Я, к примеру, самолично наблюдал в TDM-GCC ошибку при работе с виндовыми сервисами. Опять же, дело давнее, в чём она выражалась — не помню. Но тот-же самый код, конпелированный MinGW, работал корректно. Так что не исключена и ошибка порта мингвы на WinCE.

one_more_hokum ★★★
()
Ответ на: комментарий от one_more_hokum

Моменты проявления локализованы во времени и коде? Или два раза в одну воронку не падают?

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

anonymous2 ★★★★★
() автор топика
Ответ на: комментарий от quest

ну что покажете нам свои анекдоты на C или постесняетесь? )))


самый анектот - это ваши перлы на форуме

anonymous2 ★★★★★
() автор топика
Ответ на: комментарий от anonymous2

> и попадают постоянно

В смысле, очень часто по всему коду, или очень часто в пределах какого-либо экземпляра вектора?

one_more_hokum ★★★
()
Ответ на: комментарий от quest

> но мы то все равно этого не узнаем без кода

Общие предположения-то можно выдвигать...

one_more_hokum ★★★
()
Ответ на: комментарий от one_more_hokum

В смысле, очень часто по всему коду, или очень часто в пределах какого-либо экземпляра вектора?


пока локализовал один экземпляр вектора в одном месте, причем рядом другой с нормальным поведением.

anonymous2 ★★★★★
() автор топика
Ответ на: комментарий от anonymous2

>самый анектот - это ваши перлы на форуме

тут должна появится заставка: «А теперь дорогие читатели возьмите в руки главный-пульт-оценки и оцените кто больший клоун надменный уверенный в своей непогрешимости anonymous2 или пытавшийся помочь этому персонажу quest»

quest ★★★★
()
Ответ на: комментарий от anonymous2

>да, твоя жизнь не удалась..

конечно, у меня то vector отрицательный size() не возвращает - сижу скучаю, а у людей смотрю развлекуха, падает что-то, сбоит, на шиндовс «работает» )))

quest ★★★★
()
Ответ на: комментарий от anonymous2

вектор с указателями, среднее значение наполнения 70-80, делается заранее reserve(100), перебор вектора валидный, вывод size() инвалидный.

anonymous2 ★★★★★
() автор топика
Ответ на: комментарий от anonymous2

> пока локализовал один экземпляр вектора в одном месте, причем рядом другой с нормальным поведением.

Про вставку/удаление «холостых» операций с проблемным вектором, и перемещение их по коду туды-сюды спрашивать, вроде бы, некультурно, но я спрошу. Пробовал?

one_more_hokum ★★★
()
Ответ на: комментарий от one_more_hokum

Про вставку/удаление «холостых» операций с проблемным вектором,

и перемещение их по коду туды-сюды спрашивать

, вроде бы, некультурно, но я спрошу. Пробовал?


попробую, вечером

anonymous2 ★★★★★
() автор топика
Ответ на: комментарий от anonymous2

Ну просто феерично! На лоре дистанционно, по сообщениям форума, отлаживают программу под Винду. Такого лор ещё не знал.

anonymous
()
Ответ на: комментарий от anonymous

> Ну просто феерично! На лоре дистанционно, по сообщениям форума, отлаживают программу под Винду. Такого лор ещё не знал.

да не то слово. телепаты консультируют из отпуска

quest ★★★★
()
Ответ на: комментарий от quest

да не то слово. телепаты консультируют из отпуска


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

anonymous2 ★★★★★
() автор топика
Ответ на: комментарий от quest

> про ваш уровень снобизма коллега мы уже поняли)))

про ваш уровень снобизма, коллега, можно слагать легенды.

fixed.

zph
()
Ответ на: комментарий от quest

про ваш уровень снобизма коллега мы уже поняли)))


Сорри... Ваш коллега еще с дерева не слез, бананы обдирает...

anonymous2 ★★★★★
() автор топика
Ответ на: комментарий от anonymous2

> согласитесь я вас раздражаю?))

вы меня веселите))) честно
у меня то-же есть такой коллега - спорит до хрипоты что проблема не у него пока не ткнешь его в код. так что верьте дальше в свою непогрешимость, блажен кто верует)))

quest ★★★★
()
Ответ на: комментарий от anonymous2

>Ваш коллега еще с дерева не слез, бананы обдирает...

а почему на Вы ? )))

quest ★★★★
()
Ответ на: комментарий от quest

у меня то-же есть такой коллега - спорит до хрипоты что проблема...


ты забыл его спросить, пригласи сюда пусть удивится, пусть он за меня тебе в глаз даст)

anonymous2 ★★★★★
() автор топика
Ответ на: комментарий от one_more_hokum

>И мёртвый!!!

как код под шиндовс)))

quest ★★★★
()
Ответ на: комментарий от anonymous2

>ты забыл его спросить, пригласи сюда пусть удивится, пусть он за меня тебе в глаз даст)

дык за что в глаз то когда каждый раз оказывается что баг его а не его коллег? к тому же я его начальник)))

quest ★★★★
()
Ответ на: комментарий от quest

к тому же я его начальник)))


что там, блажен кто верует, начальник чукотки? (в переводе самый главный чукча)))

anonymous2 ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.