char* cc = "Something string like";
char* ccn = new char[2];
ccn[0] = 'a';
ccn[1] = '\0';
cout << cc;
第二个指针,为了防止内存泄漏,应该被delete[]
但是如何检测指针是否真的指向新的内存(就像第一个线)?第一个字符串是在哪里创建的?
最佳答案
不,你不能,你不应该以期望你能够这样做的方式设计你的应用程序。关于第一个字符串创建位置的问题 - 答案是“在编译器方便的地方” - C++ 标准未指定。
解决这个问题的明显方法不是使用 char 数组,而是使用 std::strings。
关于c++ - 检测指针是否指向...的方法,到底在哪里?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5849432/