• Source
    1. #include <stdio.h>
    2. #include <stdlib.h>
    3.  
    4. int main()
    5. {
    6. int r = 3, c = 4, i, j, count;
    7.  
    8. int **arr;
    9. arr = (int **)malloc(r * sizeof(int *));
    10. for (i=0; i<r; i++)
    11. arr[i] = (int *)malloc(c * sizeof(int));
    12.  
    13. // Note that arr[i][j] is same as *(*(arr+i)+j)
    14. count = 0;
    15. for (i = 0; i < r; i++)
    16. for (j = 0; j < c; j++)
    17. arr[i][j] = ++count; // OR *(*(arr+i)+j) = ++count
    18.  
    19. for (i = 0; i < r; i++)
    20. for (j = 0; j < c; j++)
    21. printf("%d ", arr[i][j]);
    22.  
    23. /* Code for further processing and free the
    24.   dynamically allocated memory */
    25.  
    26. return 0;
    27. }