割り当てたメモリに値を設定したい – 固定ページ 2 – プログラミング – Home

割り当てたメモリに値を設定したい
 
通知
すべてクリア

[解決済] 割り当てたメモリに値を設定したい

固定ページ 2 / 2

山田★靖
 山田★靖
(@山田★靖)
ゲスト
結合: 22年前
投稿: 24
Topic starter  

>>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」が求められるのか?
という事を質問していました。

わかりにくい質問で申し訳ございません。
皆様、よろしくお願いします。


返信引用
REE
 REE
(@REE)
ゲスト
結合: 24年前
投稿: 240
 

> POCKETINFO2* pInfo2 = reinterpret_cast<POCKETINFO2*>( pInfo1+1 );

上記で大丈夫です。

επιστημηさんは(b)を前提に回答しておられるようです。

但し、このままでは、2番目以降の要素を単純に指すことは出来ませんのでご注意ください。

pInfo1[0] ・・OK
pInfo1[1] ・・NG

pInfo2[0] ・・OK
pInfo2[1] ・・NG


返信引用
επιστημη
 επιστημη
(@επιστημη)
ゲスト
結合: 22年前
投稿: 1301
 

> REEさんが示したくれた図の(a)になります。

あ、そーゆーコトか。了解。

struct AB {
struct A a;
struct B b;
};

で、AB を n 個分確保することになるかな。


返信引用
山田★靖
 山田★靖
(@山田★靖)
ゲスト
結合: 22年前
投稿: 24
Topic starter  

どうもありがとうございました。
確かにこのままでは、2番目以降の要素を
単純に指すことは出来ないですよね・・・・
2番目以降の要素を指し方を考えてみます。

わかり次第、解決にさせて頂きます。

>>επιστημηさん
紛らわしい書き方をして申し訳ございませんでした。


返信引用
山田★靖
 山田★靖
(@山田★靖)
ゲスト
結合: 22年前
投稿: 24
Topic starter  

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 );
               ・
               ・
               ・
アドバイスくれた方々、どうもありがとうございました。


返信引用
固定ページ 2 / 2

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました