Saya dapat menginisialisasi array satu dimensi di c dengan atau tanpa menginisialisasi ukurannya:
int x[] = {1,2,3,4,5};
int y[5] = {1,2,3,4,5};
Tapi, ketika saya mencoba melakukan hal yang sama untuk array dua dimensi seperti
int x[][] = {{1,2,3},
{4,5,6}};
Saya mendapatkan error: array type has incomplete element type
. Kesalahan yang sama terjadi jika saya mendeklarasikan dan menginisialisasi array pada baris yang berbeda. Namun, saya dapat menginisialisasinya sambil menyatakan ukurannya:
int x[2][3] = {{1,2,3},
{4,5,6}};
Tidak ada kesalahan dengan yang satu ini. Pertanyaan saya adalah, apakah mungkin menginisialisasi array multi dimensi tanpa menginisialisasi ukurannya terlebih dahulu? Saya menanyakan hal ini karena untuk proyek akhir, saya harus dapat mendeklarasikan array dan menginisialisasinya nanti, dan ukurannya tidak akan diketahui saat kompilasi.
int[x][y]
, lalu bagaimana Anda tidak mengetahui ukurannya? Membiarkan ukuran kosong hanyalah sebuah kenyamanan di baris kode pertama -- kompiler menghitung inisialisasi alih-alih memaksa Anda melakukannya. Tapi itu masih diketahui pada waktu kompilasi. - person Barmar   schedule 24.09.2017malloc()
. - person Barmar   schedule 24.09.2017