写了一段小程序,发现又一个知识点没有掌握好。
阅读(31) | 评论(0) | 转发(0) |
点击(此处)折叠或打开
- #include<stdio.h>
- #include<string.h>
- int main(void)
- {
- char *str = "root:/bin:/bash";
- ......
- strtok(str, ":");
- }
出现段错误,原因是strtok会改变改变字符串(第一个参数
)的内容,而
"root:/bin:/bash" 是常量字符串,存储在常量区,是只读的,不恩能够修改其内容。解决的办法就是用字符串数组 str[] = "root:/bin:/bash",数组和指针是有本质区别的,
str[]是存储在栈区的,str[] = "root:/bin:/bash"相当于从常量区拷贝其内容到栈区。
str[]是存储在栈区的,str[] = "root:/bin:/bash"相当于从常量区拷贝其内容到栈区。
相关热门文章
评论热议