ポインタを先頭に戻すには?

解決


さち  2006-03-16 23:24:23  No: 60950

こんにちわ、さちです。
お邪魔します。

メモリの先頭にポインタを戻したいのですが、どうすればいいのでしょうか?(メモリはmallocで確保しています)

fseekはファイルポインタを移動となっていたのですが、メモリの場合はどうすればいいのかよくわかりません。

アドバイスお願いします。

【VC++.NET  WindowsXP  MFC使用】


Blue  2006-03-16 23:29:18  No: 60951

どういうことをやっているのでしょうか?
普通は先頭のポインタを記憶しておくのですけど。

どれだけ動かしたかわかっていれば、引き算でも元に戻せるのでは。

ついでに、C++なら malloc よりも new を使ったほうが良いです。


さち  2006-03-16 23:59:46  No: 60952

>どういうことをやっているのでしょうか?
メモリを指定数分確保し、その中に情報を送り込んでます。
(確保した分送っているわけではありません。
例えば最初に64取得しといて、32こ分情報を送りこみます。
その後、次の位置(33個目)に追加…またはすでにある情報の一部を削除したりします。
)

>普通は先頭のポインタを記憶しておくのですけど。
記憶するとはどういうことでしょうか?;


επιστημη  2006-03-16 23:59:46  No: 60953

XXX * p = new XXX[N];
XXX* keep = p; // 先頭位置をkeepに覚えとく。
....
p = keep; // ←コレがやりたかったのかな?


さち  2006-03-17 00:08:20  No: 60954

ありがとうございます。

>XXX * p = new XXX[N];
>XXX* keep = p; // 先頭位置をkeepに覚えとく。

XXXの箇所って、同じ型で平気ですか?


επιστημη  2006-03-17 00:16:57  No: 60955

> XXXの箇所って、同じ型で平気ですか?

ごめん、なにが疑問なのかわかりません。


さち  2006-03-17 00:17:17  No: 60956

お二方、どうもありがとうございました。

>XXX * p = new XXX[N];
>XXX* keep = p; // 先頭位置をkeepに覚えとく。

の方法で、解決しました。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加