このプログラムがクラッシュするコード行を書き出す正しい方法を誰かが知っていますか?C++でのポインタの問題
#include <cstdlib>
int position[10];
struct ONE {
int* ptr;
};
int* f(int x) {
return position + x;
}
int main() {
ONE * main_ptr = NULL;
main_ptr->ptr = f(4); // <-- crash
return 0;
}
誰かが見つけることができれば、私は本当にGREATFULだろう:私はこれがNULLのメモリセルに値を代入しようとによって引き起こされることがわかってきましたが、私はそれを正しく書くためにどのように苦労しています
問題を解決して助けてください
言語の名前はC++ではないCPP(「CPP」は、多くの場合、Cプリプロセッサを指しています)。プログラムが異常終了すると、通常は「クラッシュ」と呼ばれ、「クラッシュ」とは呼ばれません。 "double pointer"というフレーズは、 'double *'型を参照することができます。私は、 "ポインタへのポインタ"というフレーズを使用することをお勧めしますが、それはあなたがここにいるものではありません。 'main_ptr'は、ポインタを含む構造体へのポインタです。 –
「ダブルポインタ」はありません。ポインターへのポインターがあります。そして、それは「クラッシュ」ではなく「クラッシュ」します。 –