C 语言 - NULL
C 语言 NULL
NULL 是一个特殊值,代表"空指针"——一个不指向任何东西的指针。
它帮助您避免使用空指针或无效指针。您可以将指针与 NULL 进行比较,以检查使用它是否安全。
许多 C 语言函数在出现问题时返回 NULL。例如,如果文件无法打开,fopen() 返回 NULL;如果内存分配失败,malloc() 返回 NULL。我们可以使用 if 语句进行检查,并在出现问题时打印错误信息。
在此例中,我们尝试打开一个不存在的文件。由于 fopen() 失败,它返回 NULL,我们打印一条错误信息:
实例
#include <stdio.h>
int main() {
FILE *fptr = fopen("nothing.txt", "r");
if (fptr == NULL) {
printf("Could not open file.\n");
return 1;
}
fclose(fptr);
return 0;
}
如果您尝试分配过多内存,malloc() 可能会失败并返回 NULL:
实例
#include <stdio.h>
#include <stdlib.h>
int main() {
int *numbers = (int*) malloc(100000000000000 * sizeof(int));
if (numbers == NULL) {
printf("Memory allocation failed.\n");
return 1;
}
printf("Memory allocation successful!\n");
free(numbers);
numbers = NULL;
return 0;
}
总结
NULL代表一个空(null)指针- 它表示一个指针不指向任何地方
- 您可以将指针与
NULL进行比较,以检查使用它是否安全 - 像
malloc()和fopen()这样的函数在失败时返回NULL
提示:在使用指针之前,始终检查它是否为 NULL。这有助于避免因访问无效内存而导致的崩溃。