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