>>num=3の時どちら?
REEさんが示したくれた図の(a)になります。
'[]'つけたのは配列を意味するものではなく
POCKETINFO1のサイズを持つデータがnum個(a)の
ようにあるという事を言いたかったのです。
紛らわしくてすみません・・・
私が知りたかったのは「num=3」のような場合、どのように
すればデータを設定出来るか?という事になります。
一番最初のPOCKETINFO1は、このようなコードでデータを設定
出来ると思うのですが
POCKETINFO1* pInfo1 = reinterpret_cast<POCKETINFO1*>( pInfoHead+1 );
POCKETINFO2は「ヘッダ部+POCKETINFO1」のサイズの終端からなので
POCKETINFO2* pInfo2 = reinterpret_cast<POCKETINFO2*>( pInfoHead+1,pInfo1+1 );
みたいなコードの書き方が出来るのか?
POCKETINFO2* pInfo2 = reinterpret_cast<POCKETINFO2*>( pInfo1+1 );
で、期待値の「ヘッダ部+POCKETINFO1」が求められるのか?
という事を質問していました。
わかりにくい質問で申し訳ございません。
皆様、よろしくお願いします。
> POCKETINFO2* pInfo2 = reinterpret_cast<POCKETINFO2*>( pInfo1+1 );
上記で大丈夫です。
επιστημηさんは(b)を前提に回答しておられるようです。
但し、このままでは、2番目以降の要素を単純に指すことは出来ませんのでご注意ください。
pInfo1[0] ・・OK
pInfo1[1] ・・NG
pInfo2[0] ・・OK
pInfo2[1] ・・NG
> REEさんが示したくれた図の(a)になります。
あ、そーゆーコトか。了解。
struct AB {
struct A a;
struct B b;
};
で、AB を n 個分確保することになるかな。
どうもありがとうございました。
確かにこのままでは、2番目以降の要素を
単純に指すことは出来ないですよね・・・・
2番目以降の要素を指し方を考えてみます。
わかり次第、解決にさせて頂きます。
>>επιστημηさん
紛らわしい書き方をして申し訳ございませんでした。
2番目以降の要素ですが、なんの工夫もないですが
下記のように書きました。
// ヘッダ部の設定
INFOHEADER* pInfoHead = reinterpret_cast<INFOHEADER *>( pBytes );
// データ部1の設定(要素1)
POCKETINFO1* pInfo1 = reinterpret_cast<POCKETINFO1*>( pInfoHead+1 );
// データ部2の設定(要素1)
POCKETINFO2* pInfo2 = reinterpret_cast<POCKETINFO2*>( pInfo1+1 );
// データ部1の設定(要素2)
POCKETINFO1* pInfo1 = reinterpret_cast<POCKETINFO1*>( pInfo2+1 );
// データ部2の設定(要素2)
POCKETINFO2* pInfo2 = reinterpret_cast<POCKETINFO2*>( pInfo1+1 );
・
・
・
アドバイスくれた方々、どうもありがとうございました。