C/C++の宿題をやらせて、お兄ちゃん 22代目
■ このスレッドは過去ログ倉庫に格納されています
0893865
NGNGaの配列のサイズや、b,cのアドレスは、コンパイルするまで不明なので、aの中身に
「あらかじめ計算した【bやcまでのオフセット】」を入れることは困難なのです。
(ちなみに、データセクションの先頭アドレスはいつも固定だと考えてください)
要するに、aの配列の中身である「&b」,「&c」などの値そのものがコンパイラ任せであるため、
アプリケーションでロードした後も、【バイナリファイルとして保存したときと全く同じ状態】で、
かつ、【先頭にaが置かれている状態】でなければ、a,b,cがどこにあるのか分からなくなってしまいます。
int b[4] = { 1,2,3,4 };
int c[4] = { 5,6,7,8 };
int *a[] = { &b, &c, &b, &b, &c, &b, &b, ..., null, (int*)&a };
とやって、ロード後に、(先頭アドレス+ファイルサイズ-sizeof(int*)) のところから a を求めるようにすればなんとかなるのですが、
あまりにもかっこ悪いので、うまいやり方がないかと思っているのですが…。
■ このスレッドは過去ログ倉庫に格納されています