Home › Forums › GAMES在线课程(现代计算机图形学入门)讨论区 › 作业8 构建rope时出错
Tagged: Assignment 8
- This topic has 16 replies, 11 voices, and was last updated 1 week, 6 days ago by
kittates.
-
AuthorPosts
-
-
排查可知,当给masses[i]赋值,运行程序就会发生“Segmentation fault(core dumped)”,然后程序闪退……由于本次的想法也很简单,找来找去也没发现哪里有错,个人觉得可能是因为我不熟悉C++,而在哪里的写法上出了问题,还请各位大神不吝赐教……
Attachments:
You must be logged in to view attached files. -
这样创建的 m 和 s 的生命周期仅仅在循环体中,每次退出循环都会将它们销毁。这样直接取指针会导致之后使用已销毁的对象,产生运行时错误。
你需要使用动态内存分配的方法对对象的生命周期进行管理。
如masses[i] = new Mass(position, node_mass, false), 下面的 springs 也类似。-
原来如此,非常感谢!而我发现还需要记得把两个Vector都给resize一下,不然也依旧会报错,但是第一步做完现在只能看见3个分开的点,并不是一根线,我想问一下这个情况是所预期的吗?
-
啊,已经解决了,没事了~
-
请问你是咋解决的呀,我还是会一直出现这个报错
-
在我的那张图的基础上,我改成了层主所说的
masses[i] = new Mass(position, node_mass, false),不过在那之前,我resize了一下俩vector的长度,如果不resize的话我也依然会报错-
std::vector 加元素得用 push_back 或者 emplace_back。。。
直接 resize 不好
-
-
-
-
-
-
恩, 顺带马后炮一下 看到vector就应该想着 push_back
-
顺便求问各位大佬,框架里面这段被注释掉的代码想表达什么意思呢?这个for (auto &i:)为什么可以这么写。
Attachments:
You must be logged in to view attached files.-
这是C++11的range for
-
-
kittates
Participant这个问题我使用WSL2时也遇到过了,不过不是代码的问题,而是项目中的CGL>deps>glfw问题,原先的glfw我用github中的(https://github.com/glfw/glfw)替换掉就可以了。还是gdb好用 :happy:
-
-
AuthorPosts
- You must be logged in to reply to this topic.