ダメージって。。。! そんなこと言ったら駄目ーじ – プログラミング – Home

ダメージって。。。! そんなこと言った...
 
通知
すべてクリア

[解決済] ダメージって。。。! そんなこと言ったら駄目ーじ


あれっ
 あれっ
(@あれっ)
ゲスト
結合: 19年前
投稿: 3
Topic starter  

Win2000のVC++6で使ってます。
ある関数の中で、いくつかmallocしているのですが、

FTData = (double *) malloc(FrameNo * 512 * sizeof(double));
if (FTData == NULL)
{
  printf(Sorry! Memory cannot be secured ! \n);
  exit(10);
}
とメモリ確保していて、
仕事が終わった後に、
free(FTData);
をやったとたん、
VC++のDebug Libraryから
Debug Error!
Program C\Code.exe
DAMAGE: after Normal block (#54) at 0x0E940920.
(Please Retry to debug the sapplication)

のエラーです。

freeでエラーが出たのは今回初めてで、
知らんフリーしている訳にもいかず、
(リソースが足りなくなっているのかなあ)
どうしたら、いいでしょうか?


引用未解決
トピックタグ
Blue
 Blue
(@Blue)
ゲスト
結合: 20年前
投稿: 1467
 

mallocして取得したポインタをfreeしてないとかでは?

たとえば

int* p = static_cast< int* >( malloc( sizeof( int ) * 8 ) );
if ( !p ) return -1;
p++; // ここでmallocして取得したポインタを更新
free( p ); // 変更したポインタに対してfree

とか。


返信引用
tetrapod
 tetrapod
(@tetrapod)
ゲスト
結合: 21年前
投稿: 830
 

int *p=malloc(sizeof(int)*10);
p[10]=0; // 0-9 しかないのに 10 を使っちゃダメ
とかやってるから
>DAMAGE: after Normal block (#54) at 0x0E940920.
「通常ブロックの後方にダメージあり」となってるのだと推測。


返信引用
Blue
 Blue
(@Blue)
ゲスト
結合: 20年前
投稿: 1467
 

> after Normal block
でぐぐったらわかりました。
http://www.google.com/search?hl=ja&lr=lang_ja&ie=UTF-8&oe=UTF-
8&q=after+Normal+block+&num=50

ということで、私の発言は忘れてください。

# こういうタイトルのつけ方ありなのかなぁ。。。


返信引用
wood
 wood
(@wood)
ゲスト
結合: 23年前
投稿: 895
 

_free_dbg と言うのがあるらしい
私は使ったことがないですけど
MSDNに使用例も一緒に記載されてました
参考になされてはどうでしょうか


返信引用
あれっ
 あれっ
(@あれっ)
ゲスト
結合: 19年前
投稿: 3
Topic starter  

いろいろありがとうございます。
やっぱり、無い器を無理やり、多めに使おうとしていたようです。


返信引用
アミバ
 アミバ
(@アミバ)
ゲスト
結合: 20年前
投稿: 36
 

>こういうタイトルのつけ方ありなのか
大いにアリでしょう。


返信引用
イヤ
 イヤ
(@イヤ)
ゲスト
結合: 19年前
投稿: 1
 

シャレは構わないけど、本題が連想出来ないのは却下。

「freeでエラー。でも知らんフリー」くらいなら。


返信引用
wood
 wood
(@wood)
ゲスト
結合: 23年前
投稿: 895
 

題目のお話は「雑談ラウンジ」へおいでください


返信引用
アミバ
 アミバ
(@アミバ)
ゲスト
結合: 20年前
投稿: 36
 

>freeでエラー。でも知らんフリー
さては貴方、笑いを知ってますな?


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

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