小编rob*_*ert的帖子

c ++ STL队列,引用和分段错误

通过将java程序转换为c ++来学习C++的新手.以下代码在执行时会导致分段错误(SIGSEGV).

//add web page reference to pages queue (STL)
void CrawlerQueue::addWebPage(WebPage & webpage) {
    pagesBuffer.push(webpage);
}

//remove and return web page reference from pages queue
WebPage & CrawlerQueue::getWebPage() {
    if (pagesBuffer.size() > 0) {
        WebPage & page = pagesBuffer.front();
        pagesBuffer.pop();
        return page;
    } else
        throw "Web pages queue is empty!";
}

//code that results in segmentation fault when called
void PageParser::extractLinks(){ 
    try {
        WebPage &  page =  crawlerqueue.getWebPage();
    }catch (const char * error) {
       return;
    }
}
Run Code Online (Sandbox Code Playgroud)

修复了上述修复分段错误问题的代码的更改(<====):

//return …
Run Code Online (Sandbox Code Playgroud)

c++ queue stl segmentation-fault

3
推荐指数
1
解决办法
3725
查看次数

标签 统计

c++ ×1

queue ×1

segmentation-fault ×1

stl ×1