【发布时间】:2012-10-10 16:47:23
【问题描述】:
我看到一些海报说strdup 是邪恶的。对此是否有共识?我使用它时没有任何内疚感,也看不出它比使用malloc/memcpy 更糟糕的原因。
我认为唯一可能赢得strdup 声誉的是调用者可能会滥用它(例如,没有意识到他们必须释放返回的内存;尝试将strcat 放到strdup'ed 字符串的末尾)。但是,malloc'ed 字符串也不是没有被滥用的可能性。
感谢那些认为这个问题没有帮助的人的回复和道歉(投票结束)。总结这些回复,似乎没有普遍的感觉 strdup 本身是邪恶的,但普遍认为它可以像 C 的许多其他部分一样被不当或不安全地使用。
确实没有“正确”的答案,但为了接受一个,我接受了@nneoneo 的答案——它同样可能是@R.. 的答案。
【问题讨论】:
-
这个问题不是我之前的评论引起的吗?
-
@SethCarnegie 是的,但我在其他地方也看到过同样的情绪,这就是为什么我提出了一个问题,而不仅仅是问你。