簡體   English   中英

在 ifstream 中使用 getline() 時出現 EXC_BAD_ACCESS 錯誤

[英]EXC_BAD_ACCESS error when using getline() in ifstream

我最近在使用 Xcode 在 C++ 中開發時經常遇到這個EXC_BAD_ACCESS問題。 這一次,我不知道出了什么問題。

我有這個 function 應該很簡單,只是一種計算文件中有多少行的方法:

int getNumLines(string file)
{
    int lineCount = 0;
    string line;
    ifstream textFile;
    textFile.open(file);
    if( textFile.is_open() && !textFile.ios_base::fail() )
    {
        while(getline(textFile, line))
        {
            lineCount++;
        }
    }
    textFile.close();
    return lineCount;
}

每次我運行我的代碼時,我都會得到這行錯誤導致返回fstream class 文件,以及錯誤代碼:

線程 1:EXC_BAD_ACCESS(代碼=1,地址=0x7000000070)

這是此錯誤導致的地方:

圖片

我不確定是什么導致了這個問題。 僵屍對象似乎無法幫助我找到問題的根源,或者我只是不了解如何正確啟用它們。

感謝你的幫助。 我發現問題在於我在創建的對象中如何處理 arrays。 我將所有內容都移至 std::array 而不是 int* 並且我的 memory 錯誤消失了。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM