char*
最近、理解に大きな問題がありました。a を元に戻す再帰関数を作成したとchar*
しますが、それを初期化する方法によってはアクセス違反が発生し、C++ の入門書では理解するための正しいパスが見つからなかったので、あなたの助けを求めています。
ケース 1 文字を入れ替えようとしたときにアクセス違反が発生した最初のケース:
char * bob = "hello";
CASE 2次に、これを試してみました
char * bob = new char[5];
bob[0] = 'h';
bob[1] = 'e';
bob[2] = 'l';
bob[3] = 'l';
bob[4] = 'o';
CASE 3しかし、その後、私がカウトをしたとき、最後にランダムながらくたが出たので、
char * bob = new char[6];
bob[0] = 'h';
bob[1] = 'e';
bob[2] = 'l';
bob[3] = 'l';
bob[4] = 'o';
bob[5] = '\0';
CASE 4それはうまくいったので、なぜこれがうまくいかないのかを自分に言い聞かせました
char * bob = new char[6];
bob = "hello\0";
CASE 5で失敗しました。次のようなことができるとどこかで読んだことがあります
char* bob[];
次に、それに何かを追加します。私の質問は、なぜ失敗するものと失敗しないものがあるのか、そしてそれを行う最善の方法は何ですか?