0

関数を呼び出してintの動的配列を作成し、その配列にアルゴリズムを入力する次のコードがあります

main.cpp

...
int main(void){

    srand((long) 1234567);

    callFunction1();

    return 0;

}

関数.h

...
    int *A;
    int N;

    //prototype
    void callFunction2();

    void callFunction1(){

         int choice;
         cin >> choice;

         while (choice != 2){

               callFunction2();

               cin >> choice;
         }

    }

    void callFunction2(){

         cout << "Enter array size" << endl;
         cin >> N;

         A = new int[N];
         A[0] = 0;
         A[1] = 1;

         for (int i=2;i<=N;i++){
             A[i] = A[i-1] + A[i-2];
         }

    }

したがって、上記のコードはほとんどの場合機能しますが、配列を初期化する行でクラッシュする場合があります

A = 新しい int[N];

この問題の原因は何ですか?

4

2 に答える 2