char * p_one = "this is my first char pointer";
char * p_two= "this is second";
strcpy(p_one ,p_two);
上記のコードを検討してください。これにより、アクセス違反エラーが発生します。だから理解するのを手伝ってください
- 現在の
"this is my first char pointer"
文字列はメモリのどこに保存されていますか?ヒープまたはスタック strcpy
最初の文字列がすでに格納されている場合でも、呼び出す前にp_oneにメモリを割り当てる必要があるのはなぜですか。"this is second"
文字列を同じ場所にコピーできないのはなぜですか?- 呼び出す前にp_oneにメモリを割り当てると、p_oneが指す文字列は
strcpy
どう"this is my first char pointer"
なりますか?それはメモリに保持されますか? - 特定のポインタがメモリを割り当てたかどうかをどのよう
strcpy
に知るのですか?