gpt4 book ai didi

c - 传递 NULL 时 strdup 转储核心

转载 作者:IT王子 更新时间:2023-10-29 00:08:52 25 4
gpt4 key购买 nike

strdup(null) 转储核心。

在 ubuntu 和 freeBSD 上都试过了。

为什么?它不应该返回 null 吗?

char *b = NULL;
a = strdup(b);

这将在 strdup 调用时转储核心。

最佳答案

没关系。

documentation暗示它的参数必须是字符串,如果它是其他东西,比如空指针,任何人都猜会发生什么。本质上,当将 NULL 指针传递给 strdup 时,您会得到未定义的行为。

如果您向函数传递您不应该传递的内容,函数产生未定义的行为是很正常的。许多标准 C 函数,如 strcpy、strlen 也不接受空指针。

关于c - 传递 NULL 时 strdup 转储核心,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6432384/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com