我char*最近明白了很多问题.假设我做了一个递归函数来恢复a char*但是根据我如何初始化它我得到了一些访问冲突,并且在我的C++入门中我没有发现任何给我正确的理解路径所以我正在寻求你的帮助.
案例1 在尝试交换字母时我遇到访问冲突的第一种情况:
char * bob = "hello";
Run Code Online (Sandbox Code Playgroud)
案例2然后我尝试了这个让它工作
char * bob = new char[5];
bob[0] = 'h';
bob[1] = 'e';
bob[2] = 'l';
bob[3] = 'l';
bob[4] = 'o';
Run Code Online (Sandbox Code Playgroud)
情况3但是当我做了一个cout时,我最后得到了一些随机的垃圾,所以我换了它
char * bob = new char[6];
bob[0] = 'h';
bob[1] = 'e';
bob[2] = 'l';
bob[3] = 'l';
bob[4] = 'o';
bob[5] = '\0';
Run Code Online (Sandbox Code Playgroud)
案例4那是有效的,所以我告诉自己为什么这不会起作用
char * bob = new char[6];
bob = "hello\0";
Run Code Online (Sandbox Code Playgroud)
情况5,它失败了,我也读过你可以做某事的地方
char* bob[];
Run Code Online (Sandbox Code Playgroud)
然后添加一些东西.我的问题是为什么有些失败而其他失败,最好的方法是什么?