gpt4 book ai didi

将 strdup 函数的返回值与 strncmp 进行比较

转载 作者:行者123 更新时间:2023-11-30 18:45:22 25 4
gpt4 key购买 nike

我是 C 语言的新手。我试图使用 strncmp 函数比较 strdup 的两个返回值,但出现以下错误:

error: passing argument 2 of ‘strncmp’ makes pointer from integer without a cast [-Wint-conversion]

我的代码:

if (0 == strncmp( strdup(str_to_dup1), strdup(str_to_dup2)))

最佳答案

来自strncmp

strncmp

int strncmp( const char *lhs, const char *rhs, size_t count );

在您的代码中,您缺少 strncmp 的第三个参数,它是要比较的最大字符数。

您的程序存在潜在的内存泄漏,因为 strdup() 返回的指针将在 strncmp() 调用后丢失。另外,您应该知道,如果发生错误,strdup() 可能会返回 null 指针。

您应该将 strdup() 返回的指针指向变量,并确保检查是否发生了某些错误,然后将这些变量传递给 strncmp()。处理完 strdup() 返回的指针后,使用 free() 释放它们。

关于将 strdup 函数的返回值与 strncmp 进行比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54957529/

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