Hi,

I am getting Segmentation fault error for code below. Please tell me how to remove it.

Code:#include<stdio.h> #include<stdlib.h> struct MATRIX { int rows; int cols; double **t; }; struct MATRIX new_matrix(int rows, int cols) { struct MATRIX t; int i; t.rows=rows; t.cols=cols; t.t=(double **)malloc(t.rows * sizeof(double *)); for(i = 0; i < t.rows; i++) t.t[i] = (double *) malloc(cols * sizeof(double)); return t; } struct MATRIX *transpose(struct MATRIX *a) { struct MATRIX *b; int i, j; *b = new_matrix(a->cols, a->rows); for(i=0; i<b->rows; i++) for(j=0; j<b->cols; j++) *(*(b->t+i)+j)=*(*(a->t+j)+i); return b; } int main(){ struct MATRIX *x; struct MATRIX *t; int i, j; *x = new_matrix(3, 4); for(i = 0; i < x->rows; i++) for(j = 0; j < x->cols; j++) *(*(x->t + i) + j) = 1.2*(i+j); t = transpose(x); for(i=0; i < x->rows; i++) { printf("| "); for(j=0; j < x->cols; j++) printf("%.2f ",*(*(x->t+i)+j)); printf("|\n"); } printf("\n"); for(i=0; i < t->rows; i++) { printf("| "); for(j=0; j < t->cols; j++) printf("%.2f ",*(*(t->t+i)+j)); printf("|\n"); } printf("\n"); }