Почему strdup считается злом

Я видел несколько плакатов о том, чтоstrdup это зло Есть ли консенсус по этому вопросу? Я использовал его без каких-либо чувства вины и не вижу причин, почему это хуже, чем использоватьmalloc/memcpy.

Единственное, что я думаю, может заработатьstrdup репутация заключается в том, что вызывающие абоненты могут злоупотреблять ею (например, не осознавать, что им необходимо освободить возвращаемую память; попробуйте выполнить strcat до конца строки strdup). Но тогда строки в malloc также не свободны от возможности неправильного использования.

Спасибо за ответы и извинения тем, кто считает вопрос бесполезным (голосует за закрытие). Суммируя ответы, кажется, что нет общего ощущения, чтоstrdup это само по себе зло, но общее мнение, что оно, как и многие другие части C, может использоваться ненадлежащим образом или небезопасно.

На самом деле не существует «правильного» ответа, но ради его принятия я принял ответ @ nneoneo - это мог быть ответ @R ...

Ответы на вопрос(6)

Ваш ответ на вопрос