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