繁体   English   中英

C ++分段错误:11

[英]C++ Segmentation fault: 11

我遇到了Segmentation fault: 11尝试运行我的程序时出现Segmentation fault: 11错误(我在C ++中相当n00b,所以请放轻松)。 我知道这与内存分配有关,但是我不确定我到底在做什么错。 谁能帮忙找出问题所在?

基本上,我试图将一个向量切成许多小向量,然后分别分析每个向量。

std::vector<double> test::getExactHit(std::vector<double> &hitBuffer, double threshold){

    int resolution = 100;
    int highestRMSBin = 0;
    std::vector<double> exactHit(8192);
    double* rmsInEachBin = new double[hitBuffer.size()/resolution];
    double highestRMSValue = threshold;

    for(int i = 0; i<hitBuffer.size()-resolution; i+=resolution){
        std::vector<double>::const_iterator first = hitBuffer.begin() + i;
        std::vector<double>::const_iterator last = hitBuffer.begin() + i + resolution;
        std::vector<double> hitBufferBin(first, last);

        rmsInEachBin[i/resolution] = calcRMS(hitBufferBin);

        if(rmsInEachBin[i/resolution]>highestRMSValue){
            highestRMSValue = rmsInEachBin[i/resolution];
            highestRMSBin = i;
        }

    }

    for(int j = 0 ; j < exactHit.size(); j++) {
        exactHit[j]=hitBuffer[j+highestRMSBin];
    }

    return exactHit;
}

请释放用new分配的所有内存,否则会导致内存泄漏,也可能因此引入其他错误。 http://cs.baylor.edu/~donahoo/tools/gdb/tutorial.html您可以使用GDB进行调试,如果您使用C ++进行编程,那么了解调试器将非常方便。 希望此信息对您有所帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM