### Rotate the Matrix

I'm trying to rotate a matrix inplace (clockwise direction). Below is my code, everything seems right but I'm getting runtime error. Can anybody explain to me why I'm getting runtime error.

 ``123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869`` ``````#include #define SIZE 4 int matrix[4][4] = { {10,11,12,13}, {14,15,16,17}, {18,19,20,21}, {22,23,24,25} }; void swap(int *p, int *q) { int *t; *t = *p; *p = *q; *q = *t; } void printMatrix() { int i, j; for (i = 0; i < SIZE; ++i) { for (j = 0; j < SIZE; ++j) { printf("%d ", matrix[i][j]); } printf("\n"); } } int main() { int first, last, i, t, n = 0; printf("Before Rotation:\n"); printMatrix(); while(n < SIZE/2) { first = n; last = (SIZE-1)-n; /* Save First Element */ t = matrix[n][n+1]; /* Top Row */ for (i = first; i <= last; ++i) { swap(&t, &matrix[first][i]); } /* Last Column */ for (i = first+1; i <= last; ++i) { swap(&t, &matrix[i][last]); } /* Bottom Row */ for (i = last-1; i >= first; --i) { swap(&t, &matrix[last][i]); } /* First Column */ for (i = last-1; i >= first; --i) { swap(&t, &matrix[i][first]); } ++n; } printf("After Rotation:\n"); printMatrix(); }``````
Last edited on
Line 8: What does *t point to? Hint: *t is uninitialized.
@AbstractionAnon I get it thanks. Silly mistake
Topic archived. No new replies allowed.