Hanya ingin tahu, apa yang sebenarnya terjadi jika saya mendefinisikan array nol-panjang int array[0];
dalam kode? GCC tidak mengeluh sama sekali.
Program Sampel
#include <stdio.h>
int main() {
int arr[0];
return 0;
}
Klarifikasi
Saya benar-benar mencoba mencari tahu apakah array panjang nol diinisialisasi dengan cara ini, bukannya diarahkan seperti panjang variabel dalam komentar Darhazer, dioptimalkan atau tidak.
Ini karena saya harus merilis beberapa kode keluar ke alam, jadi saya mencoba mencari tahu apakah saya harus menangani kasus-kasus di mana SIZE
didefinisikan sebagai 0
, yang terjadi dalam beberapa kode dengan yang didefinisikan secara statisint array[SIZE];
Saya sebenarnya terkejut bahwa GCC tidak mengeluh, yang menyebabkan pertanyaan saya. Dari jawaban yang saya terima, saya percaya kurangnya peringatan sebagian besar karena mendukung kode lama yang belum diperbarui dengan sintaks [] baru.
Karena saya terutama bertanya-tanya tentang kesalahan, saya menandai jawaban Lundin sebagai benar (Nawaz pertama, tetapi tidak lengkap) - yang lain menunjukkan penggunaannya yang sebenarnya untuk struktur berlapis ekor, sementara yang relevan, bukan t persis apa yang saya cari.
[]
Python atau bahkan ""
dalam C? Terkadang, Anda memiliki fungsi atau makro yang membutuhkan array, tetapi Anda tidak memiliki data untuk dimasukkan ke dalamnya.