strtok 函数 的疑问
c++ 中:
<cstring>
原型:
char *strtok(char *s, const char *delim);
注意返回值。。。
一般用法如下:
char s[]=strtok(source,',');
source是源串,
source被分割后,重新组合,生成了,木有,的串。。。。
问题1:如果soeurce是 堆中的内存。。。。。
那么char s[] 岂不是有问题。。。。。 s是数组, 数组在栈中 ,栈中的数组保存的内容为堆中的字符串。。。。
问题2:
strtok是一个线程不安全的函数,因为它使用了静态分配的空间来存储被分割的字符串位置
什么叫静态分配?
我猜测这是与动态相对。。。 意思就是说: 使用的空间在 静态全局区中。。。。。
一般字符串 除了全局字符串之外,都在栈或 堆中。。。。。
为什么要 使用静态的空间呢?
还有 即使在静态空间中, 为什么不安全呢???
问题很多,,希望 不嫌麻烦,帮忙解答一下。。。
谢谢了啊