メモリ確保について – プログラミング – Home

通知
すべてクリア

メモリ確保について


ねこ
 ねこ
(@ねこ)
ゲスト
結合: 22年前
投稿: 94
Topic starter  

newでエリアを確保しているデータを再確保する際、
reallocを使用しても問題ないですか?


引用解決済
トピックタグ
Ban
 Ban
(@ban)
Prominent Member
結合: 5年前
投稿: 776
 

これ以上の制約/条件がなくて、問題がないかと聞かれれば、
コンストラクトの問題があるのでダメです。

# std::vector::resize() 使うとか?


返信引用
PATIO
(@patio)
Famed Member
結合: 3年前
投稿: 2660
 

既に書かれていますが、
newとdelete、mallocとfreeで対に考えるべきで
流れとしてreallocはmallocの流れなのでNGですね。
malloc系の流れでは、コンストラクタやデストラクタが呼ばれないので
ごっちゃにしちゃ駄目です。
newしているものに対してreallocに相当する処理がしたのなら
別に新しいサイズでnewして元の内容を新しい領域にコピーし、
古い領域をdeleteするような流れになると思います。
実際にはreallocの中では似たような事をやっていると思いますが、
それをそっくり自分でやる感じですね。

ただ、C++には可変長配列を扱うクラスがあるわけですから
そっちを使うのが正解だと思います。
Banさんがあげているのもそういう例ですね。


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

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