在C語言中,使用空指針(NULL)時可能會遇到一些常見的錯誤。以下是一些典型的例子:
int *ptr = NULL;
printf("%d", *ptr); // 這將導致程序崩潰
int *ptr; // 未初始化的指針
*ptr = 10; // 這將導致未定義行為
int x = 10;
int *ptr = &x;
if (ptr == NULL) { // 這里是一個邏輯錯誤
printf("Pointer is NULL");
} else {
printf("Value of x is %d", *ptr);
}
int *ptr = (int *)malloc(sizeof(int));
free(ptr); // 釋放內(nèi)存后,ptr變成了懸掛指針
*ptr = 10; // 這將導致未定義行為
為了避免這些錯誤,你應該始終在聲明指針時將其初始化為NULL,并在釋放內(nèi)存后將其設置為NULL。此外,在解引用指針之前,始終檢查它是否為NULL。