我试图制作打印数组的功能,但输出错误。 有人能帮帮我吗?
这是代码:
#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]);
}
}
我得到的是:
答案 0 :(得分:3)
删除for
:
for (i = 0; i < size; i++);
^^^
这使得for
循环运行size
次并在此之后执行块。但到那时,i
值等于size
。这会导致超出限制的访问权限,即undefined behaviour。显然,这不是你的意图。