B = (double **)malloc(m*sizeof(double *)); if ( B == NULL ) return NULL; for ( i = 0; i < m; i++ ) { B[i] = (double *)malloc(n*sizeof(double)); if ( B[i] == NULL ) { free(B); return NULL; } }