为什么不能用指向“字符串“常量的指针呢?具体见代码
#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") //加这句可以让常量区可写,后果自负!