我发现这在一些C++代码:设置一个const char *等于char []文字安全吗?
const char *scaryPointer = "literal";
令我惊讶的是,这不会产生编译器警告或错误(至少在Visual Studio 2008)。
这真的很安全吗?我认为在该行完成执行后,char []文字的地址将无效。
如果安全,如果您将scaryPointer
重新指定为新文字,会发生什么情况?旧文字的地址会自动释放呢?自动垃圾收集?
我发现this question,但(我认为)这些问题/答案没有完全解决我的问题&的问题。
另外:字符串文字的类型是'const char [N]'。将文字分配给非常量指针的能力是deprectaed向后兼容性hack。 (或者已经删除了该功能?) – Hurkyl
@Hurkyl真的,但这不是在这里发生的。 – Potatoswatter