文字列リテラルでchar []を初期化するのは悪い習慣ですか?
私はCodeGuruで「strlen vs sizeof」というタイトルのスレッドを読んでいましたが、回答の1つは「とにかくchar文字列リテラルで配列を初期化する[sic]悪い習慣です」と述べています。 これは本当ですか、それとも彼の(「エリート会員」ではあるが)意見ですか? 元の質問は次のとおりです。 #include <stdio.h> #include<string.h> main() { char string[] = "october"; strcpy(string, "september"); printf("the size of %s is %d and the length is %d\n\n", string, sizeof(string), strlen(string)); return 0; } 右。サイズは長さに1を加えたものでなければなりませんか? これは出力です the size of september is 8 and the length is 9 サイズは必ず10にする必要があります。strcpyによって変更される前に文字列のsizeofを計算し、その後に長さを計算するようなものです。 私の構文に何か問題がありますか? ここで回答は: とにかく、文字列リテラルでchar配列を初期化するのは悪い習慣です。したがって、常に次のいずれかを実行してください。 …