在C++中是否可能创建一个可修改的字符串字面值?例如:
char* foo[] = {
"foo",
"foo"
};
char* afoo = foo[0];
afoo[2] = 'g'; // access violation
这会产生访问冲突,因为“foo”是在只读内存中分配的(我相信是在.rdata部分)。有没有办法将“foo”强制转移到可写内存中(.data部分)?即使通过#pragma也可以接受!(Visual Studio编译器)
我知道我可以使用strdup和其他一些方法来解决问题,但我想知道是否可以按照我所要求的那样做。 :)
const
指针,数据本身也是const
的。如果这样做,您可能会在运行时遇到问题,或者当您更改甚至修补编译器时遇到问题。 - John Dibling5 = 7
编译? - fredoverflow