对数组求和的分段错误

Segmentation fault to sum an array

本文关键字:分段 错误 和的 求和 数组      更新时间:2023-10-16

我正在尝试用C++运行一个简单的代码,让用户输入一个数字数组并返回数组中的数字总和。这就是代码:

int main() {
    int t;
    int arr[t];
    int sum=0;
    cin>> t;
    for(int i=0;i<t;i++)
    {
      cin>>arr[i];
    }
    for(int y=0;y<t;y++){
      sum+=arr[y];
    }
    cout<<sum;
    return 0;
}

我有一个分割错误。有什么澄清吗?

您应该在此处更改行的顺序:

int t;
cin>> t;
int arr[t];
int sum=0;

更好地使用CCD_ 1进行可移植

  1. 使用std::vector而不是数组,因为它可以动态增长。

  2. 如果要创建在运行时确定大小的数组,请使用new,如中所示

    无符号整数t=0
    cin>>t
    int*p_array=新的int[t];

    完成阵列后,请记住使用delete [];