C++ 如何在C++;/Linux?

C++ 如何在C++;/Linux?,c++,c,linux,new-operator,ostream,C++,C,Linux,New Operator,Ostream,我怎样才能修复这里的碰撞?如何在登录文件时避免使用new()运算符 我正在写一个内存调试程序。这将每隔10秒写入一个文件,内容是“可用的空闲块,并将检查内存块的签名,以便缓冲区溢出运行”。这是我的设计- 下面是尝试进行监视的代码。我看到过一段时间后崩溃。此外,Ostream正在调用-new,冗余数据被捕获到文件中。我也不介意使用C类型的调用 /**工具所需的标题**/ #包括 #包括 #包括 #包括 #包括 #包括 #包括 /**计时器检查**/ #包括 #包括 /**计时器检查到此结束**

我怎样才能修复这里的碰撞?如何在登录文件时避免使用new()运算符

我正在写一个内存调试程序。这将每隔10秒写入一个文件,内容是“可用的空闲块,并将检查内存块的签名,以便缓冲区溢出运行”。这是我的设计-

下面是尝试进行监视的代码。我看到过一段时间后崩溃。此外,Ostream正在调用-new,冗余数据被捕获到文件中。我也不介意使用C类型的调用

/**工具所需的标题**/
#包括
#包括
#包括
#包括
#包括
#包括
#包括
/**计时器检查**/
#包括
#包括
/**计时器检查到此结束**/
/***用例头***/
#包括“memOperation.h”
#包括“DumpMemory.h”
/***用例头和结尾***/
/**用于添加模式签名的缓冲区**/
#定义缓冲区(4)
/***数组假设——指针和大小的映射*********/
结构指针LKSIZEINFO
{
无符号长整数m_PointerAddress;
无符号长整型m_blkSize;
};
/***文件名路径的字符串***/
const char*FileName=“/export/home/joshis1/DBG_REC.log”;
/***转储损坏的内存详细信息**/
const char*FileCorruptDetails=“/export/home/joshis1/DBG_CORRUPT.log”;
/****维护pointerBlkSizeInfo的数组**/
#定义监视器内存大小(1024)
/****创建的地图**************************/
指针LKSIZEINFO ptrSizeMap[监视器内存大小];
/***原型*********/
静态void startMonitorMem();
/*****************原型到此结束**/
/**********打印调用方需要的rdynamic***********************/
静态void打印调用程序(void)
{
void*数组[50];
int size=backtrace(数组,50);
字符**消息=回溯符号(数组、大小);
std::of流转储文件;
打开(文件名);
/*跳过第一个和第二个堆栈帧(此处的点)*/
对于(int frame=0;framedumpfile我想,我得到了答案。我不能在这里使用Ofstream。我应该使用基于C的fopen和fprintf。fopen和frprintf不使用new()。因此,它在这里可以工作。
这是我的代码,现在很好

/**工具所需的标题**/
#包括
#包括
#包括
#包括
#包括
#包括
#包括
/**计时器检查**/
#包括
#包括
#包括
/**计时器检查到此结束**/
/*************需要额外的监控吗************************/
#定义时间戳(1)
#定义内存泄漏监视(1)
/***********************************************************/
/***用例头***/
#包括“memOperation.h”
#包括“DumpMemory.h”
/***用例头和结尾***/
/**用于添加模式签名的缓冲区**/
#定义缓冲区(4)
/***数组假设——指针和大小的映射*********/
结构指针LKSIZEINFO
{
无符号长整数m_PointerAddress;
无符号长整型m_blkSize;
int报告故障;
};
/***文件名路径的字符串***/
const char*FileName=“/export/home/joshis1/DBG_REC.log”;
/***转储损坏的内存详细信息**/
const char*FileCorruptDetails=“/export/home/joshis1/DBG_CORRUPT.log”;
/**要记录的日志文件**/
文件*转储文件;
文件*corruptMemFile;
/****维护pointerBlkSizeInfo的数组**/
#定义监视器内存大小(1024)
/****创建的地图**************************/
指针LKSIZEINFO ptrSizeMap[监视器内存大小];
/***原型*********/
静态void startMonitorMem();
/*****************原型到此结束**/
/**********打印调用方需要的rdynamic***********************/
静态void printCaller(无符号长整型memPointerRec)
{
void*数组[50];
int size=backtrace(数组,50);
字符**消息=回溯符号(数组、大小);
/*跳过第一个和第二个堆栈帧(此处的点)*/
对于(int frame=0;frame