51Testing软件测试论坛
标题:
VC中内存泄露的一个奇怪现象????
[打印本页]
作者:
dyjyhx
时间:
2005-5-10 10:53
标题:
VC中内存泄露的一个奇怪现象????
我是在VC的编译环境下用BoundsChecker来测试内存泄露的,今天发现了一个很奇怪的问题想问问大家:
我写了下面一段程序:
#include "stdafx.h"
#include <stdio.h>
#include <time.h>
void main( int argc ,char *argv[] )
{
long clk = time(0);
struct tm *aa = localtime(&clk);
printf("%d:%d:%d\n",aa->tm_year+1900,aa->tm_mon+1,aa->tm_mday);
}
在正常情况下调试没有出现内存和资源泄露现象;我把工程设置在多线程编译环境(即Debug Multithreaded)下,在进行调试就发现了泄露现象,内存泄露定位在localtime的函数中,资源泄露定位在printf函数中,不明白是什么意思?
查资料发现程序在Debug Single-Threaded条件下和Debug Multithreaded条件下所用的静态链接库不一样,前者用的是LIBCD.LIB,后者用的是LIBCMTD.LIB.不知道程序在这两种情况下有什么区别?
为什么一个没有出现内存泄露而另外一个出现呢?
请高手指点,多谢!
欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/)
Powered by Discuz! X3.2