我一直在 "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;
}
有人能告诉我为什么我一直看到在“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;
}