【发布时间】:2010-02-16 19:31:52
【问题描述】:
考虑这段代码:
#include <stdio.h>
#define N 5
void printMatrix(int (*matrix)[N],int n)
{
int i,j;
for(i=0;i<n;i++){
for(j=0;j<n;j++)
printf("%d",matrix[i][j]);
printf("\n");
}
}
int main()
{
int R[N][N]={{1,2,3},{4,5,6},{7,8,9}};
printMatrix(R,3);
}
这可以正常工作。
现在,我想在单独的源文件中编写处理二维矩阵的函数,并在需要的地方链接它们。
但后来我遇到了函数printMatrix 中的问题,int 的数组大小在编译时需要matrix 指向(即N)。因此,当大小不同时,我的函数在其他情况下将不起作用。
那么,我该如何处理呢?
动态数组是一种解决方案,但我想知道它是否可以使用静态数组来完成。
【问题讨论】: