为什么不能用指向“字符串“常量的指针呢?具体见代码
#include <stdio.h> #include <stdlib.h> #include <string.h> void print_tokens(char *line) { static char whitespace[] = " \t\f\r\v\n"; printf("%s\n", line); char *token; for ( token = strtok(line, " "); token != NULL; token = strtok(NULL, whitespace) ) printf("%s\n", token); } int main() { char input[] = "aa bb cc dddd fsd123 134 fwe"; print_tokens(input);//假如把这里的input换成"aa bb cc dddd fsd123 134 fwe"程序就会崩溃 return 0; }
解决方案:15分
原因是那个函数会对你的输入字符串进行修改,在分隔符的地方替换字符为\0,假如你给常量字符串,这样的操作是被禁止的,当然要报错了。另外这个函数是多线程不安全的,切勿在多线程应用中使用。
解决方案:15分
#pragma comment(linker,"/SECTION:.rdata,RW") //加这句可以让常量区可写,后果自负!