有没有办法强制gcc放
char* str = "Hello";
不在.rodata中而不在
中更改此声明char str[] = "Hello!";
好的,更好的方法是将语句修改为char str[]
。谢谢大家。
答案 0 :(得分:3)
为什么呢?尝试更改字符串文字会导致未定义的行为。这是邪恶的。考虑一下这个程序:
"hello"[0] = 'y'; // Welcome to Undefined Behavior Land. Enjoy yor stay!
std::cout << "hello" << std::endl; // Could very will print "yello" now!
答案 1 :(得分:1)
static char strbuf[] = "Hello";
char *str = strbuf;
答案 2 :(得分:0)