c - 为什么在 C 中将指针的地址传递给函数

标签 c pointers

我遇到过像 strtok_s 这样的函数,您需要将指针传递给指针参数。

strtok_r(char *restrict str, const char *restrict sep, char **restrict lasts);

使用方法是:

char *foo;
char *str = ...;
char *delimiter = ...;
strtok_r(str, delimiter, &foo);

想知道为什么要将指针 foo 的地址传递给函数?

最佳答案

这样 strtok 就可以从中断处继续。此版本的 strtok 是线程安全的(因为它使用您提供的指针,而不是其他版本的内部指针)。

它将最后读取的 token 的地址保存在 char * 中,因此您需要将指针传递给该指针,以便它可以更改值并将其返回给您。

关于c - 为什么在 C 中将指针的地址传递给函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14392701/

相关文章:

c -/proc/%u/fd/%u 的大小是多少

C++ 地址处理(指针)

C++ 一种为成员函数提供 typedef 模板的方法?

c++ - 带指针的数组长度

c - 在 .c 文件之间共享全局变量

c - 我们怎样才能找到数组中第 i 个最大的元素?

pointers - 从 const 获取地址

c - 我如何在C中将指针的最右边位设置为1

c - 理解 C 中的代码(链表)

c - C中使用不同维度数组的指针数组等价