Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
проблема в коде С++
|
|||
|---|---|---|---|
|
#18+
Здравствуйте, Есть код, подскажите пожалуйста почему программа падает в Segmentation Fault Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.03.2017, 08:49 |
|
||
|
проблема в коде С++
|
|||
|---|---|---|---|
|
#18+
benao, auto -> size_t (unsigned) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.03.2017, 10:09 |
|
||
|
проблема в коде С++
|
|||
|---|---|---|---|
|
#18+
benao, Код: plaintext 1. str.size() возвращает беззнаковое целое, оно всегда больше или равно нулю, таким образом, ты написал бесконечный цикл, который сначала вызывает отрицательное переполнение при --i, перескакивая с 0 на UINT_MAX, затем обращается по этому индексу к str[i], где, конечно же, такого элемента нет. Происходит выход за границы массива и защита памяти. Надо либо использовать целый со знаком индекс, либо изменить условие на Код: plaintext 1. и в теле цикла использовать i-1 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.03.2017, 11:29 |
|
||
|
проблема в коде С++
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. всё таки бездумное использование auto - зло. Чего его повсюду стали пихать неокрепшие умы? Откуда эти ноги растут? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.03.2017, 12:08 |
|
||
|
проблема в коде С++
|
|||
|---|---|---|---|
|
#18+
безумное использование - вообще зло... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.03.2017, 14:41 |
|
||
|
проблема в коде С++
|
|||
|---|---|---|---|
|
#18+
MasterZiv, хорошо-бы в отладочном режиме понапихать ассертов. Я имею в виду библиотечном коде конечно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.03.2017, 16:39 |
|
||
|
проблема в коде С++
|
|||
|---|---|---|---|
|
#18+
egorychвсё таки бездумное использование auto - злоа было бы неплохо в IDE иметь такую фичу: автоматическую подстановку-замену auto на реальный тип. Иногда просто лень набирать 40-50 букв... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2017, 05:23 |
|
||
|
проблема в коде С++
|
|||
|---|---|---|---|
|
#18+
egorychвсё таки бездумное использование auto - зло. Чего его повсюду стали пихать неокрепшие умы? Откуда эти ноги растут? А решалось это дело очень просто: достаточно было запретить превращение auto в "простые" типы. И всё. Нет никаких проблем. ... Меня сейчас освистают и зафукают и скажут, что и так нет никаких проблем. Только вот пример ТС доказывает обратное. Я не против нововведений в языке (хотя на мой взгляд проще и понятнее(!) было бы сделать какой-нибудь C-next), я против бездумных нововведений. Какое было бы "думным"? Смотрите предыдущий абзац. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2017, 09:01 |
|
||
|
проблема в коде С++
|
|||
|---|---|---|---|
|
#18+
jmp_originalegorychвсё таки бездумное использование auto - зло. Чего его повсюду стали пихать неокрепшие умы? Откуда эти ноги растут? А решалось это дело очень просто: достаточно было запретить превращение auto в "простые" типы. И всё. Нет никаких проблем. ... Меня сейчас освистают и зафукают и скажут, что и так нет никаких проблем. Только вот пример ТС доказывает обратное. Я не против нововведений в языке (хотя на мой взгляд проще и понятнее(!) было бы сделать какой-нибудь C-next), я против бездумных нововведений. Какое было бы "думным"? Смотрите предыдущий абзац. Я думаю, всё же проблема НЕ в auto , а в том, как автор его использовал. Ошибка-то не в объявлении параметра цикла, а в условии выхода из цикла. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2017, 12:39 |
|
||
|
проблема в коде С++
|
|||
|---|---|---|---|
|
#18+
jmp_originalА решалось это дело очень просто: достаточно было запретить превращение auto в "простые" типы. И всё. Нет никаких проблем.и таким образом сразу исключаем простые типы из обобщённых алгоритмов, действительно, зачем они там))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2017, 12:42 |
|
||
|
проблема в коде С++
|
|||
|---|---|---|---|
|
#18+
MasterZivЯ думаю, всё же проблема НЕ в auto , а в том, как автор его использовал. Ошибка-то не в объявлении параметра цикла, а в условии выхода из цикла.да, я именно об этом. Написать size_t не многим сложнее, чем auto, зато сразу было бы видно, где порылся конь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2017, 12:44 |
|
||
|
проблема в коде С++
|
|||
|---|---|---|---|
|
#18+
egorychMasterZivЯ думаю, всё же проблема НЕ в auto , а в том, как автор его использовал. Ошибка-то не в объявлении параметра цикла, а в условии выхода из цикла.да, я именно об этом. Написать size_t не многим сложнее, чем auto, зато сразу было бы видно, где порылся конь. int еще проще было написать, и даже бы работало =) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2017, 13:34 |
|
||
|
проблема в коде С++
|
|||
|---|---|---|---|
|
#18+
Siemargl int еще проще было написать, и даже бы работало =)варнинг только какой-то непонятный был бы, ну да кто же их читает =) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2017, 13:51 |
|
||
|
проблема в коде С++
|
|||
|---|---|---|---|
|
#18+
egorychSiemargl int еще проще было написать, и даже бы работало =)варнинг только какой-то непонятный был бы, ну да кто же их читает =)Бывает. На меня на Хабре как то напал маньяк, размахивал транспарантом с надписью -pedantic-errors и угрожал связями с комитетом по стандартизации =) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2017, 21:54 |
|
||
|
проблема в коде С++
|
|||
|---|---|---|---|
|
#18+
egorychда, я именно об этом. Написать size_t не многим сложнее, чем auto, зато сразу было бы видно, где порылся конь. Тем кому сразу видно, тем и с авто видно. А остальным не поможет. Так что не надо перекладывать с больной головы на здоровую. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2017, 22:22 |
|
||
|
проблема в коде С++
|
|||
|---|---|---|---|
|
#18+
Anatoly MoskovskyТем кому сразу видно, тем и с авто видно.это здесь видно, в коде из 3х строчек. С size_t читать код было бы проще, не надо за компилятор выполнять работу по расшифровке этого auto. Второй раз вижу тему, где его неуместное использование приводит к её ( темы ) появлению. И оба раза то char, то size_t. Удивительно мне это ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2017, 02:31 |
|
||
|
проблема в коде С++
|
|||
|---|---|---|---|
|
#18+
egorych, А сколько было тем, когда программа падает потому что чувак выходил за границы массива. Предлагаю запретить массивы )) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2017, 11:57 |
|
||
|
проблема в коде С++
|
|||
|---|---|---|---|
|
#18+
Anatoly MoskovskyПредлагаю запретить массивы ))Предлагаю запретить! =)) PS я ведь не против auto, есичё ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2017, 12:11 |
|
||
|
проблема в коде С++
|
|||
|---|---|---|---|
|
#18+
Siemargl int еще проще было написать, и даже бы работало =)кстати, да о_О а почему бы не запретить auto везде кроме шаблонов, где без них никак? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.03.2017, 05:35 |
|
||
|
проблема в коде С++
|
|||
|---|---|---|---|
|
#18+
CEMb, Например, потому что лень писать Код: plaintext 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.03.2017, 09:45 |
|
||
|
проблема в коде С++
|
|||
|---|---|---|---|
|
#18+
MasterZivлень писать Дело не только в лени, но и в отсутствии опечаток и главное - в обобщенности алгоритма. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.03.2017, 10:57 |
|
||
|
проблема в коде С++
|
|||
|---|---|---|---|
|
#18+
MasterZivНапример, потому что лень писатьAnatoly MoskovskyДело не только в лени, но и в отсутствии опечаток и главное - в обобщенности алгоритма.using? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.03.2017, 11:16 |
|
||
|
проблема в коде С++
|
|||
|---|---|---|---|
|
#18+
CEMbusing? Локальность кода хуже. Да и вообще объявлять отдельно тип который в большинстве случаев нужен только для временной переменной - как то из пушек по воробьям. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.03.2017, 11:51 |
|
||
|
проблема в коде С++
|
|||
|---|---|---|---|
|
#18+
Anatoly MoskovskyЛокальность кода хуже.что такое локальность кода хуже?Anatoly MoskovskyДа и вообще объявлять отдельно тип который в большинстве случаев нужен только для временной переменной - как то из пушек по воробьям.если тип используется 1-2 раза, то написал полностью и забыл, да, нет смысла в using. Если же постоянно - очень даже удобно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.03.2017, 05:09 |
|
||
|
проблема в коде С++
|
|||
|---|---|---|---|
|
#18+
MasterZivbenao, Код: plaintext 1. str.size() возвращает беззнаковое целое, оно всегда больше или равно нулю, таким образом, ты написал бесконечный цикл, который сначала вызывает отрицательное переполнение при --i, перескакивая с 0 на UINT_MAX,Точнее, на std::numeric_limits<size_t>::max(). egorychPS я ведь не против auto, есичёА я против. auto часто означает «программисту было лень написать тип». Облегчает написание кода, но усложняет его чтение. Особенно когда нет умной IDE (смотрим историю изменения кода в системе контроля версий; смотрим код в online-репозитории). Хотя в некоторых случаях без auto не обойтись, например когда надо лямбда-функцию сохранить в локальную переменную: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. MasterZivCEMb, Например, потому что лень писать Код: plaintext 1. typedef-ы надо использовать. Кстати, tuple -- аналогичное зло, означает «программисту было лень придумать имена полей». Опять же, облегчает написание кода, но усложняет его чтение. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.03.2017, 03:26 |
|
||
|
|

start [/forum/topic.php?fid=57&msg=39418752&tid=2018227]: |
0ms |
get settings: |
9ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
163ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
62ms |
get tp. blocked users: |
2ms |
| others: | 11ms |
| total: | 278ms |

| 0 / 0 |
