NULL
- C kursu
- Başlangıç
- Ders 74/116
- 5 dk
NULL işaretçi kavramını ve güvenliği öğrenirsin.
NULL işaretçi
NULL, hiçbir yere işaret etmeyen özel bir işaretçi değeridir. stdlib.h veya stddef.h başlığında tanımlıdır.
int *ptr = NULL; /* ptr boş */
if (ptr == NULL) {
printf("Boş\n");
}Bir işaretçiyi NULL ile başlatmak, onun henüz bir yere işaret etmediğini açıkça belirtir. Bu, hatalı erişimi önler ve kodun okunurluğunu artırır.
NULL kontrolü
Bir işaretçiyi NULL olup olmadığını kontrol etmek için == kullanılır. NULL olmayan bir işaretçiyi * ile erişmek güvenlidir.
int x = 5;
int *ptr = &x;
if (ptr != NULL) {
printf("%d\n", *ptr); /* 5 yazar */
}NULL bir işaretçiyi * ile erişmek tanımsız davranıştır; program çökebilir. Bu yüzden kontrol şarttır.
Uygulama NULL kontrolü ile güvenli erişim
int x = 42; tanımla. int *ptr = &x; ile bağla. if (ptr != NULL) bloğu içinde printf("%d\n", *ptr); çağır. Çıktı 42 olmalı.
Başlangıç kodu
#include <stdio.h>
#include <stddef.h>
int main(void) {
int x = 42;
/* ptr'yi x'e bağla */
/* NULL değilse *ptr yazdır */
return 0;
}Örnek çözüm
#include <stdio.h>
#include <stddef.h>
int main(void) {
int x = 42;
int *ptr = &x;
if (ptr != NULL) {
printf("%d\n", *ptr);
}
return 0;
}Beklenen çıktı
42
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 Bir işaretçiyi NULL ile başlatmak neden iyidir?
- Hızı artırır
- Bellek açar
- Derleyiciyi hızlandırır Doğru cevap
- Hatalı erişimi önler
Açıklama: NULL ile başlatmak, henüz işaret etmeyen işaretçiyi açıkça belirtir; hatalı erişimi önler.
2 NULL kontrolü
int *ptr = NULL;
if (ptr ____) { /* ptr boş */ }
int *ptr = NULL;
if (ptr == NULL) { /* ptr boş */ }
Açıklama: ptr == NULL ile boş kontrolü yapılır.
3 NULL kavramlarını eşleştir
| Kavram | Anlamı |
|---|---|
NULL |
boş işaretçi |
== NULL |
boş kontrolü |
!= NULL |
dolu kontrolü |
*ptr |
değere erişim |