阵列分配问题

Issue with Array assignment

本文关键字:问题 分配 阵列      更新时间:2023-10-16

我在输出数组时遇到问题。当我在没有for循环的情况下输出每个元素时,程序运行良好。当我尝试使用 for 循环输出时,程序在我第一次在数组中设置元素时崩溃。我已经标记了当我取消注释掉for循环时程序崩溃的行。我的排序似乎工作正常,并且程序在此之前崩溃了,所以我很确定这不是问题所在。知道为什么第二个for循环会在指定行处使程序崩溃吗?

int main()
{
   int* Array;
   int j = 5;
   for(int i=0; i<5; i++)
   {
       Array[i] = j; //Crashes here with 2nd for loop uncommented
       cout << Array[i] << endl;
       j--;
   }
    Array = insertion_sort(Array);
    cout << Array[0] << endl;
    cout << Array[1] << endl;
    cout << Array[2] << endl;
    cout << Array[3] << endl;
    cout << Array[4] << endl;

   /*for(int k=0; k <5; k++)
   {
      cout << Array[k] << endl;
   }*/

}

在初始化指针之前访问指针。你应该改变

int* Array;

int* Array = new int[5]; // There are 5 ints in my array

并确保

delete[] Array;

最后,甚至更好:

int Array[5]; // This way you don't need the new keyword, so you won't need to delete[] later

现在,您的数组未实例化。这只是一个指针。您需要选择所需的数组大小,然后才能开始写入它。

int* Array = new int[5];
int j = 5;
for(int i=0; i<5; i++)
{
    Array[i] = j; //Crashes here with 2nd for loop uncommented
    cout << Array[i] << endl;
    j--;
}