メモリリークの追跡 ― 2006年11月22日 08時52分25秒
自分の書いたコードならば、ある程度心当たりがあったりするので、比較的楽だ。それが、人の書いた物だと、更に追跡は難しくなる。心当たりになるものも無いし、見当も全くつかない。
そして、メモリリークに当たる時は必ずと言っていい程、人が書いたコードに原因があるものである。そのようなときは、メモリに印を付けると手掛かりになることもある。
#include <stdlib.h>
#define free(x) {(*(char*)x) = (char)__LINE__; free(x);}
int main()
{
char *string = malloc(10);
sprintf(string, "1234567");
printf("before:%s\n", string);
free(string);
string = malloc(10);
printf("after:%x:%s\n", string[0], string);
}
コメント
トラックバック
このエントリのトラックバックURL: http://uyota.asablo.jp/blog/2006/11/22/964235/tb
※なお、送られたトラックバックはブログの管理者が確認するまで公開されません。
コメントをどうぞ
※メールアドレスとURLの入力は必須ではありません。 入力されたメールアドレスは記事に反映されず、ブログの管理者のみが参照できます。
※なお、送られたコメントはブログの管理者が確認するまで公開されません。