06 September 2008

prioritas operator

Ketika menggunakan array dinamik sebagai parameter output seringkali programmer lupa dengan prioritas operator.
void fill(int**a){
...
*a[i]=X
...
}
Prioritas [] lebih tinggi dibandingkan *, sehingga kode yg dihasilkan sebenarnya adalah *(a[i]). Tentulah ini jadi masalah, padahal yang dimaksudkan adalah (*a)[i]=X.

Solusinya tuliskan saja secara eksplisit untuk mengikat operator * pada variable a

void fill(int**a){
...
(*a)[i]=X
...
}