nevos
nevos

Reputation: 927

C++ Segmentation fault: 11

I am getting Segmentation fault: 11 error when trying to run my program (I'm quite a n00b with c++ so take it easy on me). I know it has something to do with memory allocation but I'm not sure what exactly I am doing wrong. Can anyone please help and spot the problem/s?

Basically I'm trying to chop one vector into many small vectors, and analyse each one separately.

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;
}

Upvotes: 0

Views: 154

Answers (1)

Shridhar Kurlageri
Shridhar Kurlageri

Reputation: 21

Please deallocate all the memory assigned using new or else it will cause memory leak and other bugs also might get introduced because of this . http://cs.baylor.edu/~donahoo/tools/gdb/tutorial.html You can debug using GDB , It will be handy to know a debugger if you are programming in C++ . Hope this info will help you .

Upvotes: 1

Related Questions