私の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)を提供する必要があります... –