I have the following 2D array:
int censusData[4][3] = {{87290, 77787, 55632},
                    {83020, 78373, 62314},
                    {95588, 87934, 705421},
                    {112456, 97657, 809767}};
I want to print values column-wise in that, after 3 passes of a loop, it would print:
87290 83020 95588 112456
77787 78373 87934 97657
55632 62314 705421 809767
Notice how it's the first element from each sub-array, then the 2nd, then the third..etc
I can easily access each subarray when going row-wise using this:
int* averageCityIncome(int size, int size_2, int arr[][size_2]){
    int* t_arr = malloc(4 * sizeof(int));
    for (int i = 0; i < size; i++){
        int avg = 0;
        for (int j = 0; j < size_2; j++){
            avg += arr[i][j];
        }
        avg /= size_2;
        t_arr[i] = avg;
    }
    return t_arr;
}
But now I'm trying to read column-wise as stated above and I so far have this:
int* averageIncome(int size, int size_2, int arr[][size_2]){
    int* t_arr = malloc(4 * sizeof(int));
    for (int i = 0; i < size_2; i++){
        for (int j = 0; j < size; j++){
            printf("%d\n", arr[i][j]);
        }
        printf("-----\n");
    }
    return t_arr;
}
But it doesn't seem to be working. I'm still pretty new to C, and it's difficult to wrap my mind around 2D arrays still. Any help would be greatly appreciated.
 
     
     
    