0
이 코드를 가지고 내가 int i;
같은 몇 가지 변수를 선언하면 저작자에게는 segfault의 첫 번째 속성 (C에서 클래스 ++)
#include <iostream>
using namespace std;
template <class type, int linha, int coluna>
class MetodoNw{
private:
type metodoNw[linha][coluna];
int match, missmatch, gap;
public:
MetodoNw();
};
template <class type, int linha, int coluna>
MetodoNw <type,linha,coluna> :: MetodoNw(){
match = 5;
missmatch = -3;
gap = -4;
}
int main(){
cout << "######" << endl;
MetodoNw<int,2000,2000> metodo1;
return 0;
}
을 수행 할 첫 번째 시도에서 세그먼트 폴트가 계속에, 그것은 잘 작동합니다. 내가 int i=0;
과 같은 것을 가지고 있다면 segfault를 얻습니다. cout, printf 및 다른 함수와 동일합니다. 나는 단지 무엇을 해야할지 모르겠다 ... 튜토리얼, 책, gdb를 시도했지만 아무 것도 얻지 못했다.
참고 : 이것은 코드 조각 일 뿐이므로 아무 것도하지 않습니다.
유래의 할당 힙에 배열 (또는 더 나은 아직은'표준 :: 벡터'를 사용). – Borgleader
스택 오버플로가 발생했을 수 있습니다. 스택에'int [2000] [2000]'을 할당하려고하는데 ~ 16MB의 공간이 필요할 것입니다. 대부분의 스택은 그렇게 크지 않습니다. – Cornstalks
야생 포인터 및 정의되지 않은 포인터로 인해 segfault가 발생합니다. - http://en.wikipedia.org/wiki/Segmentation_fault?scrlybrkr –