gpt4 book ai didi

c - 依靠 strtok_r 的内部指针安全吗?

转载 作者:太空宇宙 更新时间:2023-11-04 08:37:28 24 4
gpt4 key购买 nike

在这个示例程序中,我使用 strtok_r 将一个字符串拆分为两个标记。

#include <stdio.h>
#include <string.h>

int main(void) {
char buf[] = "Hello World!";
char tok[] = " ";
char *p;

char *retStr = strtok_r(buf, tok, &p);
printf("\"%s\" \"%s\"\n", retStr, p);
return 0;
}

这个程序的输出是

"Hello" "World!"

根据man page指针 pstrtok_r 内部使用,用于重新进入目的。是否也可以安全地假设它指向字符串的其余部分,就像我在这里一样?

最佳答案

不,这不安全。文档仅说明 strtok_r 将指针用于内部目的,您不应在 strtok_r 调用之间更改它。这意味着,尽管您现在观察到它指向字符串的其余部分,但这有点意外,库的实现者可以更改它——然后您的程序会因为外部库的更改而停止工作。我会避免这种不必要的依赖。

关于c - 依靠 strtok_r 的内部指针安全吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25631106/

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