0
在我的示例程序中,在下面的行中出现“堆损坏”错误。Visual Studio中的FileOutputStream对象堆损坏
ofstream filePossibleHaplotype;
“Windows已经引发了断点Project_Name.exe。 这可能是由于堆,这表明在Project_Name.exe或已加载的DLL的错误的腐败。”
如何声明文件流对象导致此错误?
- SET = 1个 NOT_SET = 0 LENGTH = 5
void fill_Unique_Bit_Array()
{
int zeroFlag = NOT_SET;
int oneFlag = NOT_SET;
bit_array = new int(LENGTH);
for(int i =0; i<LENGTH; i++)
{
for(int j =0; j<NUMBER_OF_READS; j++)
{
if(readMartixArray[j][i] == '0')
zeroFlag = SET;
else if (readMartixArray[j][i] == '1')
oneFlag = SET;
}
if(zeroFlag==SET && oneFlag==SET)
bit_array[i] = SET + SET;
else if(zeroFlag==SET && oneFlag==NOT_SET)
bit_array[i] = NOT_SET;
else if(zeroFlag==NOT_SET && oneFlag==SET)
bit_array[i] = SET;
zeroFlag = NOT_SET;
oneFlag = NOT_SET;
}
reverse_bit_array = array_Reverse(bit_array, LENGTH);
}
该函数调用[EDIT增补的代码一些片段],
void find_all_possible_combinations(int ,int, int, int)
{
ofstream filePossibleHaplotype;
}
这导致堆内存的崩溃。
无限递归?如果'ofstream'在其构造函数中使用堆,那么这行代码也可能是程序中较早发生的腐败的受害者。 – jxh
请发布更多上下文的代码。这一特定线路几乎肯定不是罪魁祸首。 – templatetypedef
你确定它没有真正发生在上面那条线吗?调试器中的黄色箭头显示要执行的_next_行。 – David