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