Hmm.. malloc yang pertama itu alokasi untuk array-nya.
sedangnya malloc yang kedua (la[i] = (int *) malloc, adalah untuk alokasi memory untuk elemennya. pinguin wrote: > Dear kawan, > Saya ingin memantapkan pemahaman ttg C,dan sekarang ingin memahami > program di bawah ini: > > void create_matrix( int ***mat, int m, int n){ > int **la = NULL; > int i; > > la = (int**)malloc(m*sizeof(int*)); > for ( i=0; i <m; i++ ) > la[i] = (int *)malloc(n*sizeof(int)); > *mat = la; > return; > } > > Fungsi utamanya: > int **b,...... > ....... > create_matrix( &a, m1, n1 ); > ........ > > yang mau saya tanyakan: > (1): > Apa perbedaan antara > la = (int**)malloc(m*sizeof(int*)) > dengan > la[i] = (int *)malloc(n*sizeof(int)) ? > la-nya dua-duanya sama berupa multiple indirection, tapi kok beda di > (int**)malloc.... dengan (int*)malloc, kemudian juga knapa la diakses > harus 2 kali, dengan la saja kmudian la[i]. > > (2): > Apakah para programmer selalu menggunakan pointer 2 kali (misal **a) > untuk menyimpan array 2D dan pointer 1x (misal *b) untuk menyimpan > array 1D? > > Btw, saya rencananya mau beli buku introduction to gcc : > http://www.network-theory.co.uk/docs/gccintro/ > bukunya bagus nggak ya? > > Terima kasih banyak atas bantuannya. > -- Rachman Chavik email: [EMAIL PROTECTED] email: [EMAIL PROTECTED] email: [EMAIL PROTECTED] www: http://www.chavik.com -- Berhenti langganan: [EMAIL PROTECTED] Arsip dan info: http://linux.or.id/milis