c++调试中出现access violation的问题,代码如下。是否是申请动态数组出现了问题,求高手解答~

2024-11-16 12:38:40
推荐回答(2个)
回答1:

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)++;

回答2:

access violation,使用违法,定义错误了吧