问题一:
解决办法:
删除注释“#”
问题二:
还没看到图形就黑屏了
可能的原因及对应解决办法:
- 图形模式mode不对,切换mode,查询系统支持的mode类型使用list_graphic_modes();
- 过快地退出了图形模式:
(1)exit_graphic();之前加上sleep()函数(单位秒),固定停留时间
(2)将exit_graphic();放在主函数的while (1);后,永久停留 - 如果像下面这样定义了单位长度,需要考虑单位长度可能为0,导致无法画线,要么采用别的单位,要么选用更高像素的mode类型
问题三:
可能原因及解决办法:
-
将调用的函数写在了头文件里面,如下
需要把这些文件放在Makefile项目文件中,比较复杂,更简单简单的解决办法是直接把调用的函数写在main.c文件里 -
在结构体变量中定义了指针变量,使用固定大小的数据替代即可
问题四:
修改之后仍然出现上次的问题
解决办法:
每次修改bug之后需要关闭QEMU。
问题五:
总是只执行一个线程
可能原因及解决办法:
- 定义栈指针时每个指针前都要加*
问题六:
单个进程运行都没问题,一起运行总是会中间停止
可能原因及解决办法: - 只定义了一个数组空间,在其中一个进程排序之后,该数组就已经是按序排列,其他进程调用的数组地址因为与其相同所以也退出进程不再运行,定义多个数组空间即可。
问题七:
各进程画线的颜色混乱,出现几个进程的颜色相同等等情况
可能原因及解决办法:
- swap函数颜色参数为数组导致,由于不断调用swap函数造成颜色地址混乱
错误示例如下:
解决办法:
使用直接传数值的方式即可。
PS:如果对你有帮助的话,帮忙点个赞吧!有任何问题欢迎在评论区留言!