数组指针在循环通过它时给出Garbage值

时间:2017-04-29 17:55:54

标签: c++ arrays pointers

我是CPP菜鸟。有时(只有一段时间)我得到数组的第0个索引的垃圾值,该数组作为数组指针传递给显示函数。 这是我的代码:

#include <iostream>
using namespace std;

void display(int arr[], int size)
{
    for (int i=0; i<size; i++)
    {
        cout << arr[i] << endl;
    }
}


int main()
{
    int size = 8;
    int arr [size] = {6, 3, 1, 0, 2, 9, 8, 7};
    int temp;
    int j;

    for (int i=0; i<size; i++)
    {
        j = i+1;
        while (j!=0 && arr[j] < arr[j-1])
        {
            temp = arr[j-1];
            arr[j-1] = arr[j];
            arr[j] = temp;
            j--;
        }
    }
    display(arr, size);
}

这是我的一个实例的输出。有时我得到了适当的值,这使得调试变得困难。

-1200926128
0
1
2
3
6
7
8
[Finished in 0.3s]

1 个答案:

答案 0 :(得分:0)

你不能使用&#34;变量&#34;同时给出数组大小。它可以是常量。

你的问题在于你的逻辑。

提示:在逻辑中添加cout语句并自行调试代码:P:)

{{1}}

使用cout语句,你可以进一步调试:)。