C语言删除矩阵某一列函数,结构体指针问题,A->row_num--;A->col_num--;这两句代码出错

发布网友 发布时间:2022-03-26 04:05

我来回答

5个回答

热心网友 时间:2022-03-26 05:35

删除列的算法错了,应该紧缩数据把数据按每行col_num数据前移,把空出来的空间放在最后这样计算位置就不会出错了否则总列数并没变,你那个col_num--就会出问题了。行数当然维持不变了!

热心网友 时间:2022-03-26 06:53

除行数不该减小之外,这一部分程序代码没有错误。A->row_num--是不对的,应该删除。
如果说运行时有错误,错误应该在别的地方,应该从调用deleteCol()的函数找找原因。

热心网友 时间:2022-03-26 08:27

你删除的是列,而行数并没有减少。追问哦,粗心了,不好意思。现在去掉A->row_num--;了。但是每次A->col_num--;执行都删掉了两列,为什么 呢

追答(A->a[i][j])=(A->a[i][j+1]);

从上面看j应该是从N-2开始的,如果从第一次开始j=N-1,A->a[i][N-1]=A->a[i][N],而a[i][N]是不合法的,这样就造成删掉2列。

热心网友 时间:2022-03-26 10:19

程序出错总得把错误信息粘进来吧?这样能能更快定位问题。

热心网友 时间:2022-03-26 12:27

指针A的值非法吧追问为什么非法呢

追答你查一下A的地址,看看对不对,不会是NULL吧

声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。
E-MAIL:11247931@qq.com