我刚刚了解了first.cc,我想将first.cc中的节点数量从2更改为3或4 5,但是只更改nodes.Create(2) ==> nodes.Create(3)会导致以下错误
断言file=../src/point-to-point/helper/point-to-point-helper.cc,failed.cond="c.GetN () ==2“,+0.000000s-1==2 line=224终止调用,没有活动异常
所以我得在他们之间加点联系否则呢?如有任何帮助或建议,将不胜感激!
发布于 2022-04-02 05:50:15
首先,我希望鼓励您使用gdb (或lldb)来调试程序。如果这样做,就会发现是first.cc中的这一行导致了错误:
devices = pointToPoint.Install (nodes);为什么会发生这种事?如果我们去被调用的函数的定义,我们会发现:
NetDeviceContainer
PointToPointHelper::Install (NodeContainer c)
{
NS_ASSERT (c.GetN () == 2); // line 224
return Install (c.Get (0), c.Get (1));
}查看这段代码,很明显PointToPointHelper::Install( NodeContainer )强加了一个约束,即NodeContainer只能包含两个节点。这说明了您遇到的错误是如何发生的。
但是为什么呢?
这是一个(很好的)设计选择。PointToPointChannel只能安装在两个PointToPointNetDevices之间,而不是更多,而不是更少。因此,该实现施加了一个约束,即NodeContainer只能包含两个节点。
https://stackoverflow.com/questions/71714972
复制相似问题