我有兩個C++類,我們調用一個hier
和另一個cp
。啓動期間,hier
創建cp
的實例。 cp
將讀取帶有兩列的文本文件,這兩列分別稱爲resp_r
和resp_l
,並將內容存儲在兩個同名的數組中。例如:std::vector<int> resp_r;
在C++中傳遞字符串時無效指針
對於好奇的讀者,這些列代表在1秒窗口內是否發生了左鍵或右鍵按鍵。
在每個單元格中,resp_r/l
然後根據文本文件具有1或0。
hier
瞭解文本文件中的行數(t),並且在t
上有for
循環。在每一個循環中, 「問道」 cp
什麼內容是resp_r/l[t]
,通過調用cp
公共方法:string get_response(int t)
:
string resp;
while (t < max_t) {
resp = cp->get_response(t);
...
}
在
cp
,該get_response
函數的定義,像這樣:
string CP::get_response(int t) {
if (resp_r[t] == 1) {
return "right";
} else if (resp_l[t] == 1) {
return "left";
}
return "none";
}
我有大約50個文件可以正常工作,但是其中一個文件不會在腳本接近文件結尾時出現。
*錯誤的`./cp_diff_vr_x.out':免費():無效的指針:0x0000000000f3e920 *
我試圖弄清楚什麼是錯在這裏。錯誤似乎發生在return語句中(返回「right」,具體而言),而不是在查詢resp_r
期間發生。
您的代碼中存在一處錯誤。在stackoverflow.com上只有一個人可以找到並修復這個bug。當然,這將是你,因爲只有你有完整的源代碼,並且只有你能夠運行調試器來追蹤錯誤。 –
[分割故障常見原因的確定清單]的可能重複(https://stackoverflow.com/questions/33047452/definitive-list-of-common-reasons-for-segmentation-faults) –
任何機會可能無效?檢查t的值與resp_r – Giel