Почему strdup считается злом
Я видел несколько плакатов о том, чтоstrdup
это зло Есть ли консенсус по этому вопросу? Я'мы использовали его без чувства вины и не видим причин, почему это хуже, чем использование /.malloc
memcpy
Единственное, что я думаю, может заработатьstrdup
репутация заключается в том, что вызывающие абоненты могут злоупотреблять ею (например, не понимают, что им нужно освободить возвращаемую память; попробуйте strcat до конца strdup 'строчка). Но тогда Malloc 'Строки ed не свободны от возможности неправильного использования.
Спасибо за ответы и извинения тем, кто считает вопрос бесполезным (голосует за закрытие). Суммируя ответы, кажется, что нет общего ощущения, чтоstrdup
это само по себе зло, но общее мнение, что оно, как и многие другие части C, может использоваться ненадлежащим образом или небезопасно.
Здесь нет 'правильный' ответь действительно, но ради принятия я принял @nneoneo 's ответ - это могло бы быть @R .. 'ответ.