Cara Memeriksa Null di C: 7 Langkah (dengan Gambar)

Daftar Isi:

Cara Memeriksa Null di C: 7 Langkah (dengan Gambar)
Cara Memeriksa Null di C: 7 Langkah (dengan Gambar)

Video: Cara Memeriksa Null di C: 7 Langkah (dengan Gambar)

Video: Cara Memeriksa Null di C: 7 Langkah (dengan Gambar)
Video: Gimp: Course For Beginners 8: Scale or Resize an Image 2024, April
Anonim

Dalam C, NULL adalah konstanta simbolis yang selalu menunjuk ke titik yang tidak ada dalam memori. Meskipun banyak programmer memperlakukannya sama dengan 0, ini adalah penyederhanaan yang dapat membuat Anda tersandung di kemudian hari. Sebaiknya periksa pointer Anda terhadap NULL secara langsung, dan gunakan 0 dalam konteks lain. Ini membuat kode Anda tetap bersih dan mudah dimengerti, karena Anda akan tahu bahwa Anda bekerja dengan pointer setiap kali Anda melihat NULL.

Langkah

Bagian 1 dari 2: Melakukan Pemeriksaan Null

Periksa Null di C Langkah 1
Periksa Null di C Langkah 1

Langkah 1. Gunakan kode cek nol standar

Berikut ini adalah cara paling jelas untuk menulis cek nol. Kami akan menggunakan ptr dalam artikel ini sebagai nama penunjuk yang Anda periksa.

  • jika (ptr == NULL)

    {

    // kode jika pointer NULL

    } lain {

    // kode jika tidak NULL

    }

Periksa Null di C Langkah 2
Periksa Null di C Langkah 2

Langkah 2. Uji untuk nilai apa pun kecuali NULL

Terkadang lebih mudah untuk menguji ketidaksetaraan. Tidak ada kejutan di sini:

  • jika (ptr != NULL) {

    // kode jika tidak NULL

    }

Periksa Null di C Langkah 3
Periksa Null di C Langkah 3

Langkah 3. Tulis NULL terlebih dahulu untuk menghindari kesalahan (opsional)

Kerugian utama dari metode PTR == NULL adalah kemungkinan Anda secara tidak sengaja mengetikkan ptr = NULL sebagai gantinya, menetapkan nilai NULL ke pointer itu. Hal ini dapat menyebabkan sakit kepala yang parah. Karena pengujian untuk (dalam)kesetaraan memperlakukan operan secara simetris, Anda bisa mendapatkan hasil yang persis sama dengan menulis jika (NULL == ptr) sebagai gantinya. Ini lebih tahan kesalahan ketik, karena NULL = ptr yang tidak disengaja membuat kesalahan kompilasi sederhana.

Ini terlihat sedikit canggung bagi beberapa programmer, tetapi ini benar-benar valid. Pendekatan mana yang Anda gunakan hanya bergantung pada preferensi pribadi, dan seberapa baik kompiler Anda dalam mendeteksi kesalahan if (ptr = NULL)

Periksa Null di C Langkah 4
Periksa Null di C Langkah 4

Langkah 4. Uji apakah variabel benar

Sederhana jika (ptr) menguji apakah ptr adalah TRUE. Ini akan mengembalikan FALSE jika ptr adalah NULL, atau jika ptr adalah 0. Perbedaannya tidak masalah dalam banyak kasus, tetapi perlu diketahui bahwa ini tidak identik di semua arsitektur.

Kebalikannya adalah jika (!ptr), yang akan mengembalikan TRUE jika ptr adalah FALSE.

Bagian 2 dari 2: Menghindari Kesalahan

Periksa Null di C Langkah 5
Periksa Null di C Langkah 5

Langkah 1. Atur penunjuk sebelum memeriksa NULL

Satu kesalahan umum adalah menganggap bahwa pointer yang baru dibuat memiliki nilai NULL. Ini tidak benar. Pointer yang belum ditetapkan masih menunjuk ke alamat memori, hanya saja bukan alamat yang telah Anda tentukan. Sudah menjadi praktik umum untuk menyetel pointer yang baru dibuat atau yang baru dibebaskan ke NULL untuk memastikan Anda tidak menggunakan alamat yang tidak membantu ini secara tidak sengaja.

  • Hindari kesalahan ini:

    karakter *ptr;

    jika (ptr == NULL)

    {

    // Ini akan mengembalikan FALSE. Pointer telah diberi nilai yang valid.

    }

  • Sebagai gantinya tulis:

    char *ptr = NULL; //Ini memberikan pointer ke NULL

    jika (ptr == NULL)

    {

    // Ini akan mengembalikan TRUE jika pointer belum dipindahkan.

    }

Periksa Null di C Langkah 6
Periksa Null di C Langkah 6

Langkah 2. Perhatikan fungsi yang dapat mengembalikan NULL

Jika suatu fungsi dapat mengembalikan NULL, pikirkan apakah ini suatu kemungkinan, dan apakah itu akan menyebabkan masalah di kemudian hari dalam kode Anda. Berikut ini contoh fungsi malloc menggunakan tanda centang nol (jika (ptr)) untuk memastikannya hanya menangani pointer dengan nilai yang valid:

  • int *ptr = malloc(N * ukuran(int));

    jika (ptr) {

    di aku;

    untuk (i = 0; i < N; ++i)

    ptr = saya;

    }

Periksa Null di C Langkah 7
Periksa Null di C Langkah 7

Langkah 3. Pahami bahwa NULL adalah 0 tetapi Anda harus selalu menggunakan NULL daripada 0 saat bekerja dengan pointer untuk kejelasan

Secara historis, C mewakili NULL sebagai angka 0 (yaitu, 0x00). Saat ini bisa menjadi sedikit lebih rumit, dan bervariasi menurut sistem operasi. Anda biasanya dapat memeriksa NULL menggunakan ptr == 0, tetapi ada kasus sudut di mana hal ini dapat menyebabkan masalah. Mungkin yang lebih penting, menggunakan NULL memperjelas bahwa Anda bekerja dengan pointer untuk orang lain yang membaca kode Anda.

Tips

Anda dapat menggunakan perulangan while check-in ini seperti yang lainnya: sementara (NULL == ptr) {

Direkomendasikan: