C 从具有 MAX_SIZE 的函数访问二维数组



我写了这个函数,但是当我打印数组时,得到不正确的数字: 问题是因为MAX_SIZE,如何在不改变MAX_SIZE的情况下解决这个问题?

#include <stdio.h> 
int MAX_SIZE = 3;

void print(int arr[MAX_SIZE][MAX_SIZE],int n) 
{ 
int i, j; 
for (i = 0; i < n; i++) 
for (j = 0; j < n; j++) 
printf("%d ", arr[i][j]); 
} 
int main() 
{ 
int arr[][2] = {{1, 2}, {4, 5}}; 
print(arr,2); // 1 2 5 0
return 0; 
} 

首先,你应该在 C 中声明常量,如下所示:

#define MAX_SIZE <value>

如果您将MAX_SIZE设置为2,您的问题将得到解决,因为您尝试访问arr[][2]而不是arr[][3].

正确的语法:

#define MAX_SIZE 2

输出:

1 2 4 5

就是这样。

最新更新