函数printArray无法正常工作

时间:2015-12-11 19:13:08

标签: c arrays

我试图制作打印数组的功能,但输出错误。 有人能帮帮我吗?

这是代码:

    #define _CRT_SECURE_NO_WARNINGS
    #include <stdio.h>
    void printArr(int arr[],int size);

    int main()
    {
        int arr1[3] = { 1,2,3 };
        int arr2[5] = { 1,2,3,4,5 };

        printf("arr1: \n");
        printArr(arr1, 3);

        printf("\n\narr2: \n");
        printArr(arr2, 5);
        printf("\n\n");

        return(0);
    }

    void printArr(int arr[], int size)
    {
        int i;
        for (i = 0; i < size; i++);
        {
            printf("%d", arr[i]);
        }

}

我得到的是:

enter image description here

1 个答案:

答案 0 :(得分:3)

删除for

处的分号
for (i = 0; i < size; i++);
                          ^^^

这使得for循环运行size次并在此之后执行。但到那时,i值等于size。这会导致超出限制的访问权限,即undefined behaviour。显然,这不是你的意图。

相关问题