Menu
CoddyTech

Pointer NULL

Termasuk bagian Logika dan Alur dalam perjalanan C di Coddy. Pelajaran 5 dari 63.

Terkadang kamu perlu mendeklarasikan pointer, tetapi belum memiliki alamat memori yang valid untuk langsung diberikan kepadanya. Dalam situasi ini, penting untuk menginisialisasi pointer dengan nilai khusus yang disebut NULL.

Pointer NULL adalah pointer yang tidak menunjuk ke alamat memori yang valid. Dalam C, NULL biasanya didefinisikan sebagai 0 atau (void*)0. Saat kamu menginisialisasi pointer dengan NULL, kamu secara eksplisit menyatakan bahwa pointer tersebut saat ini tidak menunjuk ke apa pun yang berguna.

int *ptr = NULL;    // Inisialisasi pointer ke NULL
printf("%p", ptr);  // Ini akan mencetak 0 atau (nil)

Menginisialisasi pointer ke NULL dianggap sebagai praktik pemrograman yang baik karena mencegah pointer-mu berisi nilai acak yang tidak valid. Pointer yang belum diinisialisasi mungkin berisi alamat memori acak apa pun, yang dapat menyebabkan perilaku tak terduga jika kamu tidak sengaja mencoba menggunakannya.

Kamu dapat memeriksa apakah pointer bernilai NULL sebelum menggunakannya. Ini membantu mencegah crash dan membuat kodemu lebih tangguh. Pemeriksaan keamanan ini menjadi sangat penting saat programmu semakin kompleks.

challenge icon

Tantangan

Mudah

Tulis program C yang menunjukkan inisialisasi dan pemeriksaan pointer NULL yang benar. Programmu harus:

  1. Mendeklarasikan pointer ke integer bernama safe_ptr dan menginisialisasinya dengan NULL
  2. Mendeklarasikan pointer ke karakter bernama char_ptr dan menginisialisasinya dengan NULL
  3. Memeriksa apakah safe_ptr adalah NULL menggunakan pernyataan if, lalu mencetak "safe_ptr is NULL" jika benar
  4. Memeriksa apakah char_ptr adalah NULL menggunakan pernyataan if, lalu mencetak "char_ptr is NULL" jika benar
  5. Mencetak alamat memori yang tersimpan di safe_ptr menggunakan printf dengan penentu format %p
  6. Mencetak alamat memori yang tersimpan di char_ptr menggunakan printf dengan penentu format %p

Outputmu harus menampilkan hasil dalam format berikut:

safe_ptr is NULL
char_ptr is NULL
safe_ptr address: [address]
char_ptr address: [address]

Alamat memori sebenarnya akan ditampilkan sebagai 0, (nil), atau representasi NULL serupa, bergantung pada sistemmu, tetapi format dan labelnya harus sama persis seperti yang ditunjukkan di atas.

Coba sendiri

#include <stdio.h>

int main() {
    // TODO: Tulis kodemu di sini
    // Deklarasikan dan inisialisasikan pointer-mu
    // Periksa apakah pointer bernilai NULL
    // Cetak output yang diminta
    
    return 0;
}
quiz iconUji dirimu

Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.

Semua pelajaran di Logika dan Alur

Latihan sendiri: Compiler C online