我一直在 "hiddenLetters[i] = '_';" 行中看到取消引用空指针警告?

i am keeping seeing the dereferncing a null pointer warnning in the line "hiddenLetters[i] = '_';"?

有人能告诉我为什么我一直看到在“hiddenLetters[i] = '_';”行中取消引用空指针的错误吗??

char* hiddenWord(char* guessWord) {

    int length = strlen(guessWord);
    int i;

    char* hiddenLetters = NULL;

    if (!(hiddenLetters = (char*)malloc(length))) {
        printf("Error");
    }

    for (i = 0; i < length; i++) {
        hiddenLetters[i] = '_';
        printf("%c ", hiddenLetters[i]);
    }

    return hiddenLetters;
}

hiddenLetters 在通过 if 检查之前没有任何元素,因此如果出现错误则返回 null 将抑制警告。

char* getHiddenWord(char* guessWord) {

    int length = strlen(guessWord);

    char* hiddenLetters;
    
    if (!(hiddenLetters = (char*)malloc(length))) {
        printf("Error");
        return NULL;
    }

    for (int i = 0; i < length; i++) {
        hiddenLetters[i] = '_';
        printf("%c ", hiddenLetters[i]);
    }

    return hiddenLetters;
}