#include <stdio.h>
// Fixed‑size 2D array
// Callback receives a pointer to each element
void apply(int rows, int cols, int arr[rows][cols], void (*cb)(int*)) {
for (int r = 0; r < rows; r++) {
for (int c = 0; c < cols; c++) {
cb(&arr[r][c]);
}
}
}
void increment(int *x) {
(*x)++;
}
int main() {
int arr[2][3] = { {1,2,3}, {4,5,6} };
apply(2, 3, arr, increment);
// Print result
for (int r = 0; r < 2; r++) {
for (int c = 0; c < 3; c++)
printf("%d ", arr[r][c]);
printf("\n");
}
}
/*
run:
2 3 4
5 6 7
*/