メモリリークやメモリ破壊について

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
Aozora0630
記事: 85
登録日時: 9年前
住所: 日本
連絡を取る:

メモリリークやメモリ破壊について

#1

投稿記事 by Aozora0630 » 8年前

今、作っているゲームでとても困ったことになりましたので相談させていただきます。

PCハッキングのシミュレート3Dゲームを作っているのですが、それの途中の何処かでメモリリーク又はメモリ破壊が起きてしまっているみたいなのですが、メモリリークやメモリ破壊を動的に検出してくれるツールはありませんでしょうか?

配列をVectorに置換すればと思ったのですが、気づいたときにはソースが大規模になっていて手遅れでした。

因みにCppCheckは無反応でした。

コンパイラ : bcc32
言語 : C++
OS : XP
ライブラリ : DxLib
► スポイラーを表示

Rittai_3D
記事: 525
登録日時: 11年前

Re: メモリリークやメモリ破壊について

#2

投稿記事 by Rittai_3D » 8年前

前にも書きましたが、スマートポインタを使ったらどうでしょうか。
スマートポインタを使えばメモリリークは(変なことをしなければ)防げますよ。

あちらで、nullptrさんがおっしゃっておりましたが、メモリダンプは根本的な解決になりません。

メモリ破壊は配列の添え字を入念にチェックするくらいしか防ぎようが無い気がします。
初心者です

たいちう
記事: 418
登録日時: 13年前

Re: メモリリークやメモリ破壊について

#3

投稿記事 by たいちう » 8年前

仕事でC++を使っていたのは5年程前までですが、
その頃にはそのようなツールは大変高価なものでした。
今はフリーで適当なのがあるかもしれませんが、
メモリリークならば、普通にデバッグできないことが問題です。

Aozora0630さんの質問や他の質問者への回答を見て感じるのは、
かなり基本を疎かにしているようだな、ということです。
あちこちからソースコードをコピーして、うまくつなぎ合わせれば、
そこそこのものができ上がるかもしれませんが、
基本を身に付けておかないと、先に進めなくなる時が必ず来ます。

ツールにできることは、必ずプログラマにも可能です。
よい機会なので、じっくりとデバッグをしてみてはどうですか?


> ソースをアップロードして確認してもらうって丸投げになるんでしょうか?

数十行程度のプログラムでないなら、私は丸投げと思います。
じっくり考えてもどうしたらよいのか、見当もつかない場合は、再度質問してください。
オフトピック
サイト拝見しました。

> こんな感じです。デバッグとかはしてないので恐らくエラーがあると思います。

↑のような記述は、掲示板の回答でも見かけましたが、もっと丁寧に扱いましょうよ。
「サンプルなんだから間違っててもいいや」というのは、
「プログラムは動けばいいや」という考えと通じているのではないでしょうか。

サイト自体は、非常に野心的で精力的と感じました。
上述したことに気を付けて今の熱意を継続できるならば、
短期間で目覚ましく上達し、ゲームもサイトも良いものになると思います。
頑張ってください。

Aozora0630
記事: 85
登録日時: 9年前
住所: 日本
連絡を取る:

Re: メモリリークやメモリ破壊について

#4

投稿記事 by Aozora0630 » 8年前

たいちう さんが書きました:Aozora0630さんの質問や他の質問者への回答を見て感じるのは、
~~~~~~~~~~~~~~~~~~~~~~~~~
基本を身に付けておかないと、先に進めなくなる時が必ず来ます。

ツールにできることは、必ずプログラマにも可能です。
よい機会なので、じっくりとデバッグをしてみてはどうですか?
~~~~~~~~~~~~~~~~~~~~~~~~~~
オフトピック
サイト拝見しました。

> こんな感じです。デバッグとかはしてないので恐らくエラーがあると思います。

↑のような記述は、掲示板の回答でも見かけましたが、もっと丁寧に扱いましょうよ。
「サンプルなんだから間違っててもいいや」というのは、
「プログラムは動けばいいや」という考えと通じているのではないでしょうか。

サイト自体は、非常に野心的で精力的と感じました。
上述したことに気を付けて今の熱意を継続できるならば、
短期間で目覚ましく上達し、ゲームもサイトも良いものになると思います。
頑張ってください。
>ツールにできることは、必ずプログラマにも可能です。
>よい機会なので、じっくりとデバッグをしてみてはどうですか?
そうですね・・・・。がんばってみます。

>↑のような記述は、掲示板の回答でも見かけましたが、もっと丁寧に扱いましょうよ。
すみません・・・。
► スポイラーを表示
少なくともサイトのほうはコンパイルも出来るので気をつけます。

たいちうさん、ありがとう御座いました。
Rittai_3D さんが書きました:前にも書きましたが、スマートポインタを使ったらどうでしょうか。
スマートポインタを使えばメモリリークは(変なことをしなければ)防げますよ。

あちらで、nullptrさんがおっしゃっておりましたが、メモリダンプは根本的な解決になりません。

メモリ破壊は配列の添え字を入念にチェックするくらいしか防ぎようが無い気がします。
そうですか・・・、自分でデバッグをして見ます。

Rittai_3Dさん、ありがとう御座いました。

アバター
みけCAT
記事: 6734
登録日時: 13年前
住所: 千葉県
連絡を取る:

Re: メモリリークやメモリ破壊について

#5

投稿記事 by みけCAT » 8年前

オフトピック
Aozora0630 さんが書きました:ブラウザとコンパイラとメモ帳立ち上げるとPCがががががが・・・・。
なんでメモ帳だけ具体的なソフト名なんだろう…?縛りプレイアピールかな?宗教戦争かな?
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)

dic
記事: 656
登録日時: 13年前
住所: 宮崎県
連絡を取る:

Re: メモリリークやメモリ破壊について

#6

投稿記事 by dic » 8年前

bcc32でスマートポインタ使えるのですかね?
bcc32さわったことのない人の話です。

http://d.hatena.ne.jp/A7M/touch/20110701/1309499043

Aozora0630
記事: 85
登録日時: 9年前
住所: 日本
連絡を取る:

Re: メモリリークやメモリ破壊について

#7

投稿記事 by Aozora0630 » 8年前

みけCAT さんが書きました:
オフトピック
Aozora0630 さんが書きました:ブラウザとコンパイラとメモ帳立ち上げるとPCがががががが・・・・。
なんでメモ帳だけ具体的なソフト名なんだろう…?縛りプレイアピールかな?宗教戦争かな?
オフトピック
え、いや、その、・・・。
別に縛ってはいませんが・・・。エディタって言ったらそりゃ重いだろって言われそうなんで・・・・。
じゃあ、全部具体的に・・・。
Operaとメモ帳とbcc32を立ち上げると(ry

Aozora0630
記事: 85
登録日時: 9年前
住所: 日本
連絡を取る:

Re: メモリリークやメモリ破壊について

#8

投稿記事 by Aozora0630 » 8年前

自力でデバッグをしたら解決しました。

ありがとう御座いました。

閉鎖

“C言語何でも質問掲示板” へ戻る