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;
}