请问这个C++程序代码到底是什么意思啊?

2024-11-30 02:39:53
推荐回答(4个)
回答1:

定义一个_DEBUG(#ifdef/#ifdef防止重复定义),DEBUG_NEW是new的宏,用来动态分配内存,THIS_FILE[] 是一个绝对路径名的文件,#undef THIS_FILE用来防止以前的THIS_FILE宏。
总的来讲,这个程序就是用来动态分配内存的,相对于new而言,这段程序出错的时候可以通过THIS_FILE[]知道程序分配内存出错的位置。 应该足够明白了,希望楼主能懂!

回答2:

这个代码明显是用于 内存跟踪的.. 


你可以找一下 DEBUG_NEW的定义,应该差不多是这样:

#define DEBUG_NEW new(THIS_FILE, __LINE__)

除此之外,还应该有对 new运算符的重载,差不多应该是这样:

void * operator new(size_t size, const char *file, int line) {
    void *ptr = ::malloc(size);
    MemoryTracker::instance().recordAllocation(ptr, size, file, line);
    return ptr;
}

回答3:

这个是预处理条件编译,以便于程序的移植和调试,你可以再看一下这个文件其他内容,找找这段代码的相关内容在其中的应用就可以更好的理解这段话。

回答4:

这么偏,估计也只会出现在试题里