[英]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.