/* Read a matrix in from FileName structure definition is in Matrix.h */ #include "Matrix.h" struct matrix TransposeMatrix(struct matrix A){ int i; struct Col {float vals[A.m];}; struct matrix At = {0,0, NULL}; //Flip Explicit Dimensions At.m = A.n; At.n = A.m; //Mess with pointers; At.mat = malloc(At.m*sizeof(float *)); for(i=0; i < At.m; i++){ At.mat[i] = (struct Col *) (&(A.mat[0][0])+i); } return At; }