これは何に興味がありますか?私はmemsetをしない場合、ヒープ割り当てによって初期化されていない値が作成されました
char *assign_value = (char*)malloc(10 * sizeof(char));
if(strlen(assign_value) == 0) {
strcpy(assign_value, "A");
} else {
strcat(assign_value, "A");
}
上記の例では、初期化されていない値がヒープ割り当てによって作成されたというエラーが発生します。しかし、私は事を行い、malloc()とif文の間にmemset()を挿入すると同じエラーが表示されません。私はいくつかのsugestionsを聞きたい、これは正しい方法ではない場合、何が正しいことですか?
char *assign_value = (char*)malloc(10 * sizeof(char));
memset(assign_value, 0, sizeof(assign_value));
if(strlen(assign_value) == 0) {
strcpy(assign_value, "A");
} else {
strcat(assign_value, "A");
}
ありがとう!
'malloc'は決して初期化しません。あなたが望むなら 'memset'の後に' calloc'を使うことができます。 – ameyCU