重複の可能性:
C文字列の「\ 0」の後のメモリはどうなりますか?
ポインタの、たとえば3番目の要素をNUL('\ 0')にして、その後、ポインタの残りの要素を「消去」することは可能ですか?
重複の可能性:
C文字列の「\ 0」の後のメモリはどうなりますか?
ポインタの、たとえば3番目の要素をNUL('\ 0')にして、その後、ポインタの残りの要素を「消去」することは可能ですか?
あなたがCスタイルの文字列について話していると仮定すると、そうです、一種:
char s[] = "abcdefgh"; // s = "abcdefgh"
// (actually contains 9 characters: "abcdefgh\0")
s[3] = '\0'; // s = "abc"
// (still contains 9 characters, but now: "abc\0efgh\0")
この時点では、それ以降の文字s[3]
は魔法のように消えていないことに注意してください。文字列を表示するか、Cスタイルの文字列を受け取る関数に渡すと、文字列に3文字しか含まれていないように見えます。あなたはまだすることができます例えば
s[3] = 'x'; // s = "abcxefgh"
// (still contains 9 characters, but now: "abcxefgh\0")