滥用指针会产生分段错误。我仍然不确定如何纠正它]]

问题描述 投票:0回答:1

经过阅读后,我觉得我明白这里出了什么问题,但是我不确定如何解决。据我了解,问题在于我如何在第4行(强调)中编写数组的输入。问题本身是,当我第一次在任何IDE中运行代码时,它都能正常工作,但是当我尝试使用数字时,它将新数组视为与第一个数组共享一个大小,即使在没有。似乎我应该以其他替代方式重写第4行,以免滥用指针,但我不确定如何。

using namespace std;

void INSERTIONSORT(int* A) { //THIS IS LINE 4
    int i;
    int key;
    for (int j = 0; j < sizeof(A); j++) {
        key = A[j];
        i = j - 1;
        while (i >= 0 && A[i] > key) {
            A[i + 1] = A[i];
            i = i - 1;
        }
        A[i + 1] = key;
    }
}

void display(int* A) {
    for (int i = 0; i <= sizeof(A)-1; i++)
        cout << A[i] << " ";
    cout << endl;
}

int main() {
    int myArray[] = { 2,1,4,3 };
    cout << "Array before Sorting: ";
    display(myArray);
    INSERTIONSORT(myArray);
    cout << "Array after Sorting: ";
    display(myArray);
    return 0;
}```

经过阅读后,我觉得我明白这里出了什么问题,但是我不确定如何解决。据我了解,问题在于我如何在第4行中写入数组的输入(...

c++ pointers segmentation-fault
1个回答
0
投票

此行是问题:

© www.soinside.com 2019 - 2024. All rights reserved.