내 C++ 코드에는 이와 같은 정의가 있습니다.extern 및 inline의 사용
class A {
int i;
public:
void setI(int temp) {
i = temp;
}
};
extern A* a;
그런 다음 변수의 값을 인수로 채우는 함수가 있습니다.
inline void Func() {
... // Stream definition with ifstream etc.
int k;
stream >> k;
a->setI(k); // Gives segmentation fault...
}
어떤 이유가있을 수 있습니까? 미리 감사드립니다 ...
'a'는 포인터입니다. 아마 초기화되지 않았습니다. 'a'는 어디에 선언 되었습니까? –
포인터가 유효한 메모리 위치를 가리켜 야합니다. – Mahesh
다른 사람들이 당신을 도울 수 있도록 [mcve] (http://stackoverflow.com/help/mcve)를 제공해야합니다 ... –