ненависть: strtok
strtok
Никогда этой функцией не пользовался, так как всегда была возможность реализовать контекстно более рациональный механизм работы с токенами. А тут представилась свободная минутка почитать про эту непотокобезопасную, нереентерабельную жуть. Фиг бы с ним (зачастую) с потоками, да даже и для нереентерабельности, скрепя сердце, можно найти оправдание... ЭТА ШТА ТАКОЭ: Код:
char str[] ="- This, a sample string."; Может функция возвращает указатели на токены, создавая их в куче? Нет - судя по адресам - указатели непосредственно на байты исходной строки. Но ведь она может быть const (хоть, согласно костылю стандарта, может быть объявлена и без соответствующего спецификатора) - а для закрытия токена необходимо перезаписать ближайший разделитель терминатором. Подобное надругательство у Страуструпа комментируется как "ошибки, обычно не выявляющиеся до стадии выполнения программы" и отмечается зависимость поведения от реализации. Так же упомянуто в разделе "Нежелательные особенности". Всё что нужно, чтобы уронить программу, оформить обрабатываемую строку как литерал: Код:
char *str ="- This, a sample string."; Не пользовался и не буду >>:( Нафиг такую муть в стандартную либу пихать, посоны? |
Ответ: ненависть: strtok
Ну походу это Legacy.
|
Ответ: ненависть: strtok
̶П̶о̶т̶о̶м̶у̶ ̶ч̶т̶о̶ ̶С̶и̶ ̶н̶е̶ ̶д̶л̶я̶ ̶н̶у̶б̶о̶в̶
Си же императивный язык, чо сказали ему то он и собрал, пример же обрушения приведен искусственный. |
Ответ: ненависть: strtok
2mr.DIMAS
Да будь я ______и нубом преклонных годов и то, ____без унынья и лени, я СИшник бы выучил _____________только за то, что б ____ставить врагов на колени. |
Ответ: ненависть: strtok
Какой посыл сея стиха? Я не называл тебя нубом, просто Си коварный и опасный язык при неверном обращении.
|
Часовой пояс GMT +4, время: 11:52. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot