错误:分段错误(核心转储)数组?

Amb*_*nna 0 c++ sorting

每次运行程序时,我都会收到消息:Segmentation fault(core dumped).我尝试做了一些研究,似乎问题与分配非法内存有关.我也试过调试程序,似乎问题出在linearsort()函数中,因为在将它注释掉后,其余的语句才能正常工作.

#include <iostream>

using namespace std;

int main()
{
    void linearsort(int [], int);

    int arr[10];
    for( int j = 0; j < 10; j++)
        arr[j] = j +1;

    linearsort(arr,10);
    for(int i = 0; i < 10; i++)
        cout << arr[i] << " ";

    cout << endl;

    cin.get();
    return 0;



}

void linearsort(int arr[],int n)
{
    int temp;

    for(int pass = 0; pass < n - 1; n++)
        for(int cand = pass + 1; cand < n; cand++){
            if(arr[pass] > arr[cand]){
                temp = arr[pass];
                arr[pass] = arr[cand];
                arr[cand] = temp;
            }
        }
}
Run Code Online (Sandbox Code Playgroud)

Bor*_*der 7

for(int pass = 0; pass < n - 1; n++)
Run Code Online (Sandbox Code Playgroud)

n++应该增加错误的值pass++.现在意思是,您正在访问数组中的超出索引.

  • @Pikrass比赛的激动;) (3认同)