返回信息流在前面用Malloc申请了一块内存,然后后面就提示取消对NULL指针的引用,中间判断过了,指针不是NULL啊?并且其他的变量也会提示没有初始化!程序单进程执行没有问题,但是用mpiexec并行执行时就会报错!有没有大佬帮忙解答一下!
这是一条镜像帖。来源:北邮人论坛 / cpp / #99602同步于 2019/11/20
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖
malloc以后仍然提示取消对NULL指针的引用!
jra09070
2019/11/20镜像同步3 回复
订阅后,新回复会通过你的通知中心匿名送达。
3 条回复
看起来应该是多线程编程安全问题,建议看一下多线程同步的知识,为了保证数据访问的安全性和程序执行的先后顺序应当使用多线程的同步对象进行同步,如果编写的程序运行在windows下,建议看一下书《windows核心编程》第五版
ErrMsg只是打印个错误消息,程序还会继续执行。这不行。必须返回,或者exit,或者abort,或者用别的方法让程序执行不下去。仅仅打印错误不算是处理了错误。
p.s. 学rust或者Java吧,一劳永逸地避免这种低级内存错误。