double **matrix_t( double (*a_matrix)[2], int krow, int kline ) //修改为这样
double **c = matrix_t(a,2,2);//调用时候修改为这样
原因是二维数组参数传递问题导致
matrix_t((double **)s,2,2); 这个s是指向第一行的指针的指针
double **matrix_t( double **a_matrix, int krow, int kline ) 这样调用 a_matrix 的大小其实就第一行的大小
------------------------------------------------------------
或者b[k][k2]=a_matrix[k2][k]; 修改为 b[k][k2]=*(*a_matrix)++;
access violation,使用违法,定义错误了吧