-1
我收到此錯誤C++:0000005:在0x57B4B2CE(msvcr120d.dll)中的Program.exe未處理的異常訪問衝突讀取位置0xCDCDCDC8
Unhandled exception at 0x57B4B2CE (msvcr120d.dll) in Program.exe: 0xC0000005: Access violation reading location 0xCDCDCDC8
,並在這部分代碼發生:
void Print_Function(char * output_file)
{
f = 0;
f = fopen(output_file,"w");
for (int i = 0 ; i < count_total ; i++)
{
for (int j = 0 ; j < sizes[i] ; j++)
{
for (int k = 0 ; k < rules[i][j]->sizes_elements ; k++)
if (k < rules[i][j]->sizes_elements - 1) fprintf(f,"%i ", elements[rules[i][j]->elements[k]]);
else fprintf(f,"%i", elements[rules[i][j]->elements[k]]);
fprintf(f,":%.3f:%i\n", rules[i][j]->measure_value,rules[i][j]->index);
free(rules[i][j]->elements); rules[i][j]->elements = 0;
free(rules[i][j]); rules[i][j] = 0;
}
free(rules[i]); rules[i] = 0;
}
fclose(f); f = 0;
free(rules); rules = 0;
free(size_rules); size_rules = 0;
free(elements); elements = 0;
}
異常啓動代碼中的具體
free(rules[i]); rules[i] = 0;
的這一部分的F後第一次迭代外部循環,是以前的自由做某件事,我沒有注意到,而不是像我期待它那樣?
任何幫助表示讚賞。
'i'的價值是什麼?它出界了嗎? – 2015-03-31 19:36:16
雖然這是C++標籤,但它看起來像C。 – Robinson 2015-03-31 19:36:56
'任何幫助表示讚賞.'你想要任何幫助嗎?用'std :: vector'重寫這個函數,並停止malloc/free瘋狂。 – PaulMcKenzie 2015-03-31 19:40:38