Нашли или выдавили из себя код, который нельзя назвать нормальным,
на который без улыбки не взглянешь?
Не торопитесь его удалять или рефакторить, — запостите его на
говнокод.ру, посмеёмся вместе!
Да, для массива _ENTITIES длиною в 200 элементов гарантированно имеет место выход за пределы массива, это даже можно математически доказать.
В циклах _ENTITY проходит от 0 до 199. В них безусловно используется _ENTITIES[_ENTITY], а также _ENTITIES[_ENTITY + 1] - по условию. Если условие истинно, при _ENTITY равном 199 будет выход за границы массива. Если немного поглядеть на условие, станет очевидным, что оно всегда истинно в силу особенностей C-подобных языков. Т.е. в каждом из циклов имеет место выход за границы массива.
Что можно посоветовать автору кода?
1. Попробовать посмотреть на программу с математической точки зрения.
2. Использовать assert (из <cassert>) и вставить assert(X >= 0 && X < 200); перед любым _ENTITIES[X].
3. Использовать отладчик или отладочную печать (можно, например, выводить в cerr и перенаправить его в файл, если в cout выводится псевдографика)
А также:
1. Переосмыслить свой стиль именования
2. Осознать унарный оператор "отрицание" (восклицательный знак)
3. Осознать, что X == true в условии эквивалентно X
Cerr и cout не используются, данная программа на openGl - ё, что не так с именами? Очень удобно вызывать из классов, отрицание... что с ни с не так? Выходить по сути не должен, такая система используется и в заполнении, и в удалении объектов, и математически всё в For объяснено, но я так же добавил данные проверки после создания поста, не помогло :/
> Cerr и cout не используются
Это хорошо, как минимум отладочная печать заработает.
> что не так с именами?
Неканоничные они. Даже противозаконные, если верить http://stackoverflow.com/a/228797
> отрицание
строки 23-26
> Выходить по сути не должен
> и математически всё в For объяснено
Должен.
Ну ладно, если _ENTITY_SHOW_MOVABLE вдруг меняет _WIDTH, _HEIGHT или _ENTITY, то не выходит. Иначе выходит за границы и читает из 200-го элемента.
> такая система используется и в заполнении, и в удалении объектов
Могло повезти, на то и неопределённое поведение.
Нет, не меняет :), он показывает подвижен ли объект, если подвижен то собственно для него высчитывают, есть ли справа статичный объект или конец карты, а так же в случае их отсутствия - перемещение, только уже сверху вниз, из-за одного Бага,_WIDTH и другие эти переменные не меняются.. Точно надо бы их константами обозначить
> Предлагаю изучить дебаггер и поставить hardware BP по адресу _ENTITIES+200*sizeof(этот ваш энтити)
> как пхпшники, чесслово
А зачем дебаггер? Как мне кажется, это как пушкой по воробьям. Не настолько же Shantykoff не знает свою программу, что только полное погружение поможет.
Да, про х == true не подумал изначально, но раз начал то уж закончу в таком упрощенном стиле, выложу на всеобщее обозрение, может кто поймёт лучше алгоритм тетриса
Да я случайно, не кидайте в меня тряпки, осознал что не использовал х с == true слишком поздно, а так да, написал бы в одном сообщении... А собственно других ошибок не видите? Не должно давать, я уже проверял методично по старинке, бумага ручка
Потом парень заканчивал, снимал презик, бросал его на пол, а эта самка ожидала следующего героя. Иногда за вечер через Наткину вагину «проходило» до двух десятков парней!
Можно цитаток набрать побольше или хотя бы вореций добавить? (У меня на гитхабе лежит целых джва генератора, созданных сообществом ГК) А то иначе очень легко будет заблочить всё это повторение.
- Я так раньше никогда не делала. Мне понравилось. А тебее? - сказала она после того, как я влил в неё свой заряд и, уставший, уселся прямо на ковролин на полу кабинета.
– У вас у мужиков, по утрам, он безо всякого возбуждения так торчит, что любо дорого. Ну, вот я… и… – Я закрыл ей рот поцелуем, а когда оторвался, то зашептал ей в лицо
- Я так раньше никогда не делала. Мне понравилось. А тебее? - сказала она после того, как я влил в неё свой заряд и, уставший, уселся прямо на ковролин на полу кабинета.
И я её люблю. Не за деньги, не за грудь 5-го размера, и даже не за волшебный минет. Я люблю её просто так, просто потому, что она есть, просто потому, что она моя Марго!
Эта история произошла со мной, когда мне едва исполнилось 18 лет. Я рос без отца, наверное, поэтому мне не хватало твердости в характере. Я был очень податливым и легко поддавался чужому влиянию.
- Я так раньше никогда не делала. Мне понравилось. А тебее? - сказала она после того, как я влил в неё свой заряд и, уставший, уселся прямо на ковролин на полу кабинета.
Я достаточно долгое время живу за рубежом, поэтому как-то проще уделять время своим шалостям. Никто особо не третирует за вопрос бисексуальности, хотя и в самой моей бисексуальности есть тонкости.</b></b>
Потом парень заканчивал, снимал презик, бросал его на пол, а эта самка ожидала следующего героя. Иногда за вечер через Наткину вагину «проходило» до двух десятков парней!
- Я так раньше никогда не делала. Мне понравилось. А тебее? - сказала она после того, как я влил в неё свой заряд и, уставший, уселся прямо на ковролин на полу кабинета.
Я быстро вынул член и перебрался к елениной голове, она сразу же забрала весь член в рот и после нескольких охватывающих движений глоткой с наслаждением всосала в себя всё, что я выплеснул из члена.
Эта история произошла со мной, когда мне едва исполнилось 18 лет. Я рос без отца, наверное, поэтому мне не хватало твердости в характере. Я был очень податливым и легко поддавался чужому влиянию.</b></b>
Эта история произошла со мной, когда мне едва исполнилось 18 лет. Я рос без отца, наверное, поэтому мне не хватало твердости в характере. Я был очень податливым и легко поддавался чужому влиянию.
Входя в квартиру, они приветливо здороваются «Здрасьте, тёть Наташ!», а уже через десяток минут лежали на ее прекрасном теле, вгоняли в ее «пизду» свой «хуй»
Нет, главное к подружкам своим, таким же потаскушкам, она меня не ревновала, к проституткам каких иногда приводил прямо домой, в те дни, когда она была «занята» – тоже, а тут, к матери родной ревнует!
И я её люблю. Не за деньги, не за грудь 5-го размера, и даже не за волшебный минет. Я люблю её просто так, просто потому, что она есть, просто потому, что она моя Марго!</b>
Входя в квартиру, они приветливо здороваются «Здрасьте, тёть Наташ!», а уже через десяток минут лежали на ее прекрасном теле, вгоняли в ее «пизду» свой «хуй»
И я её люблю. Не за деньги, не за грудь 5-го размера, и даже не за волшебный минет. Я люблю её просто так, просто потому, что она есть, просто потому, что она моя Марго!
Я быстро вынул член и перебрался к елениной голове, она сразу же забрала весь член в рот и после нескольких охватывающих движений глоткой с наслаждением всосала в себя всё, что я выплеснул из члена.
Нет, главное к подружкам своим, таким же потаскушкам, она меня не ревновала, к проституткам каких иногда приводил прямо домой, в те дни, когда она была «занята» – тоже, а тут, к матери родной ревнует!
– У вас у мужиков, по утрам, он безо всякого возбуждения так торчит, что любо дорого. Ну, вот я… и… – Я закрыл ей рот поцелуем, а когда оторвался, то зашептал ей в лицо
Я стал ласкать их. У них, был свой вкус. Не такой, как у Наташкиных, и не такой, как у других женщин, а особый, только ей принадлежащий, волшебный вкус.
Я достаточно долгое время живу за рубежом, поэтому как-то проще уделять время своим шалостям. Никто особо не третирует за вопрос бисексуальности, хотя и в самой моей бисексуальности есть тонкости.
- Я так раньше никогда не делала. Мне понравилось. А тебее? - сказала она после того, как я влил в неё свой заряд и, уставший, уселся прямо на ковролин на полу кабинета.
- Я так раньше никогда не делала. Мне понравилось. А тебее? - сказала она после того, как я влил в неё свой заряд и, уставший, уселся прямо на ковролин на полу кабинета.
я хотела буквально всё - хотела попробовать член, отдаться в киску и всё такое. Я очень часто плакала когда была дома, по этому поводу, потому что желания и секс - фантазии буквально разрывали мой мозг, и только когда я мастурбировала, организм успокаивался и затихало на время дичайшее желание.
Нет, главное к подружкам своим, таким же потаскушкам, она меня не ревновала, к проституткам каких иногда приводил прямо домой, в те дни, когда она была «занята» – тоже, а тут, к матери родной ревнует!
- Я так раньше никогда не делала. Мне понравилось. А тебее? - сказала она после того, как я влил в неё свой заряд и, уставший, уселся прямо на ковролин на полу кабинета.
Я быстро вынул член и перебрался к елениной голове, она сразу же забрала весь член в рот и после нескольких охватывающих движений глоткой с наслаждением всосала в себя всё, что я выплеснул из члена.
Нет, главное к подружкам своим, таким же потаскушкам, она меня не ревновала, к проституткам каких иногда приводил прямо домой, в те дни, когда она была «занята» – тоже, а тут, к матери родной ревнует!
Потом парень заканчивал, снимал презик, бросал его на пол, а эта самка ожидала следующего героя. Иногда за вечер через Наткину вагину «проходило» до двух десятков парней!
я хотела буквально всё - хотела попробовать член, отдаться в киску и всё такое. Я очень часто плакала когда была дома, по этому поводу, потому что желания и секс - фантазии буквально разрывали мой мозг, и только когда я мастурбировала, организм успокаивался и затихало на время дичайшее желание.
Я быстро вынул член и перебрался к елениной голове, она сразу же забрала весь член в рот и после нескольких охватывающих движений глоткой с наслаждением всосала в себя всё, что я выплеснул из члена.
В циклах _ENTITY проходит от 0 до 199. В них безусловно используется _ENTITIES[_ENTITY], а также _ENTITIES[_ENTITY + 1] - по условию. Если условие истинно, при _ENTITY равном 199 будет выход за границы массива. Если немного поглядеть на условие, станет очевидным, что оно всегда истинно в силу особенностей C-подобных языков. Т.е. в каждом из циклов имеет место выход за границы массива.
Что можно посоветовать автору кода?
1. Попробовать посмотреть на программу с математической точки зрения.
2. Использовать assert (из <cassert>) и вставить assert(X >= 0 && X < 200); перед любым _ENTITIES[X].
3. Использовать отладчик или отладочную печать (можно, например, выводить в cerr и перенаправить его в файл, если в cout выводится псевдографика)
А также:
1. Переосмыслить свой стиль именования
2. Осознать унарный оператор "отрицание" (восклицательный знак)
3. Осознать, что X == true в условии эквивалентно X
Это хорошо, как минимум отладочная печать заработает.
> что не так с именами?
Неканоничные они. Даже противозаконные, если верить http://stackoverflow.com/a/228797
> отрицание
строки 23-26
> Выходить по сути не должен
> и математически всё в For объяснено
Должен.
Ну ладно, если _ENTITY_SHOW_MOVABLE вдруг меняет _WIDTH, _HEIGHT или _ENTITY, то не выходит. Иначе выходит за границы и читает из 200-го элемента.
> такая система используется и в заполнении, и в удалении объектов
Могло повезти, на то и неопределённое поведение.
Как минимум, в представленной здесь версии кода будет выведено "200!" перед тем, как программа обратится к 200му элементу.
как пхпшники, чесслово
> как пхпшники, чесслово
А зачем дебаггер? Как мне кажется, это как пушкой по воробьям. Не настолько же Shantykoff не знает свою программу, что только полное погружение поможет.
Налицо сразу два диагноза: 1. копролалия; 2. слепота (медсестра - она).
Приходите к нам, под пианино попляшем.
стертор, ты на гормонах чилишоли?
с пивасой?
Сейчас придёт медсестра и сделаем Вам укол.
Не желаете к нам?
Борманда забрали мы.