[]演算子の方が、->演算子や.演算子より優先度が高いのが、
ちょっと肝になっていて、そこは良くはまる。
typedef struct _S_KODOMO_HOGE{
long *pHensuu;
}S_KODOMO_HOGE;
typedef struct _S_HOGE{
S_KODOMO_HOGE *pKohoge;
}S_HOGE;
として、
void func(long* out_pHensuu){
int i, j, num1, num2;
S_HOGE hogehoge;
hogehoge.pKohoge = ( *S_HOGE )malloc( sizeof( S_HOGE ) * num1 );
for( i = 0; i < num1; i++ ){
hogehoge.pKohoge[i].pHensuu = ( *S_HOGE )malloc( sizeof( S_long) * num2 );
}
for( i = 0; i < num1; i++ ){
for( j = 0; j < num2; j++ ){
hogehoge.pKohoge[i].pHensuu[j] = j + i*num2;
}
}
}
とポインタを配列で表現したときに、
正しい位置を指せないんだよなぁ。
上記の場合に正しくはどこ指してるのだろうかとかも、
メモリの取り方に依存するし、
これってコンパイラ依存な問題だろうか?

0