void printArray(int **array, int m, int n)
{
int i, j;
for(i = 0; i < m; i++) {
for(j = 0; j < n; j++) {
printf("%d\n", array[i][j]);
}
}
}
int main()
{
int i, j, k = 0, m = 5, n = 20;
int **a = malloc(m * sizeof(*a));
//Initialize the arrays
for (i = 0; i < m; i++) {
a[i]=malloc(n * sizeof(*(a[i])));
}
for (i = 0; i < m; i++) {
for (j = 0; j<n; j++) {
k++;
a[i][j] = k;
}
}
printArray(a, m, n);
//Free allocated memory of the array
for (i = 0; i < m; ++i) {
free(a[i]);
}
free(a);
return 0;
}
Wednesday, October 21, 2009
Passing multi-dimensional arrays to functions in C
Here is how to initialize and pass multi-dimensional arrays to functions in ANSI C :
Subscribe to:
Post Comments (Atom)
2 comments:
i know it's just test code but don't forget to free allocated memory
Yes, you're right Reuben; thanks for the mention.
Updated code sample to free the memory used by the array.
Post a Comment