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.

--
Berhenti langganan: [EMAIL PROTECTED]
Arsip dan info: http://linux.or.id/milis

Kirim email ke