strtok_s()为什么我们需要指针的地址?

时间:2013-05-23 19:54:23

标签: c++ pointers

15年后我回到了C ++ ......我无法记住为什么我们需要指针的地址。就像在这句话中一样:

char *next_token = NULL;
char *pszMozilla = strtok_s(szCopyVariable, "/", &next_token);

是否假设指针的地址最终将表示指针列表的开头?

2 个答案:

答案 0 :(得分:9)

strtok_s是一个可重入的函数,它需要在某处存储某个状态。该状态是指向处理完最后一个字符的字符的指针。 (想一想,这就是恢复令牌化所需的全部内容。)

如果函数想要在用户提供的空间中存储X,则用户需要提供指向X的指针,指向X将到达的位置。在我们的例子中,X是“指向char的指针”。

答案 1 :(得分:1)

多数民众赞成因为strtok_s()通过在每次调用时移动next_token来维持状态。