【发布时间】:2016-03-13 08:52:22
【问题描述】:
我刚刚开始学习/探索 const_cast 并尝试使用它,但发现在使用 const_cast 后,如果我尝试修改数据会出现运行时错误。
基本上我是个东东像
void main()
{
const char* str = "Hello";
char* mstr = const_cast<char*>(str);
mstr[1] = 'R';//<----- i get runtime exception on this line
}
发生这种情况是因为字符串“Hello”被存储在内存中某个无法修改的地方。如果有人能对此进行更多说明,那就太好了。
【问题讨论】:
-
您正在修改不应该修改的数据,并告诉编译器会拒绝您这样做“我不在乎”。那你为什么想知道?
标签: c++ c++11 casting constants const-cast