I am tring to make a simple transpose func on an r*r matrix. In my code below, when i get to the line temp = mat[i][j] I get SIGSEGV. but I dont really get why. Any tips would be appreciated.
void transpose(int** mat, size_t col)
{
 int i = 0;
 int j = 0 ;
 for(i= 0; i< col; ++i)
 {
    for(j = i ; j< col; ++j)
    {
        int temp = mat[i][j];
        mat[i][j] = mat[j][i];
        mat[j][i] = temp;
    }
 }
}
void printMat(int* arr, int size)
{
 int i = 0;
 for(i = 0 ; i< size*size ;++i)
 {
    printf("%d| ", arr[i]);
    if((1+i)%size == 0)
    {
        printf("\n");
    }
 }
}
int main()
{
 int arr[][3] = {{1,2,3},{4,5,6},{7,8,9}};
 printMat((int*)arr, 3);
 transpose((int**)arr, 3);
 printMat((int*)arr, 3);
return 0;
}
 
     
    