c - 傅里叶莫茨金

标签 c sorting valgrind

我们正在尝试使用Fourier-Motztkin为了求解方程组,我们需要按每行的最后一个元素对矩阵进行排序。

首先,我们希望所有行的最后一个元素为正,然后是负,最后是零。当我们使用 valgrind 运行程序时,我们收到一条错误消息:

"invalid read of size 4" at the first if condition

最佳答案

根据您使用 T 的方式,我假设您为矩阵分配了 rows*cols 整数。因此,当 i=rows-1 时,表达式 T[i*cols+cols] 变为 T[rows*cols],这与分配的内存结束。该表达式应为 T[i*cols+cols-1] 以读取该行的最后一个元素。您实际上正在读取下一行的第一个元素。

关于c - 傅里叶莫茨金,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25685590/

相关文章:

c - 为什么++variable 在 C 中不被视为左值?

php - C转PHP密码加密(逆向)

c - 短程序在 C 中挂起

java - Comparator.comparing().reversed() 反转所有早期的比较器?

ios - 当集合在 swift 中存储用户定义的类型时,如何以特定顺序迭代集合的值?

c - 在冒泡排序中得到错误的输出

c++ - 带有 Gtk+ 的 OpenGL,尽管清除了背景,但仍未绘制形状

c - 使用 valgrind 在 strstr() 中读取大小 1 无效

c++ - Valgrind 对 FILE 的读取无效*

c - valgrind 显示未释放的内存