检测指针是否指向......的方法,究竟在哪里?

The*_* do 0 c++ pointers

char* cc = "Something string like";
char* ccn = new char[2];
ccn[0] = 'a';
ccn[1] = '\0';
cout << cc;
Run Code Online (Sandbox Code Playgroud)

第二个指针,为了防止内存泄漏,应该是delete[]'但是如何检测指针是否实际指向新的内存(如第一行中的那个)?第一个字符串在哪里创建?

小智 8

不,您不能,并且您不应该以期望您能够这样做的方式设计您的应用程序.关于创建第一个字符串的位置的问题 - 答案是"编译器方便的地方" - 它不是由C++标准指定的.

解决这个问题的明显方法是不使用char数组,而是使用std :: strings.