我在一些C++代码中发现了这个:
const char *scaryPointer = "literal";
Run Code Online (Sandbox Code Playgroud)
令我惊讶的是,这不会生成编译器警告或错误(至少在Visual Studio 2008中).
这样做真的安全吗?我认为在该行完成执行后,char [] literal的地址将无效.
如果它是安全的,如果你重新分配scaryPointer给新文字会发生什么?旧文字的地址会自动释放吗?自动垃圾收集?
我发现了这个问题,但(我认为)问题/答案没有完全解决我的问题和疑虑.
| 归档时间: |
|
| 查看次数: |
308 次 |
| 最近记录: |