gpt4 book ai didi

c++ - 我无法弄清楚的段错误

转载 作者:太空宇宙 更新时间:2023-11-04 15:51:40 27 4
gpt4 key购买 nike

我有以下构造函数:

    Timing::Timing():
_numMes(INIT_NUMMES),_msgs(new allMSgs*[NUMBER_OF_MSGS])
{

cout<<"build timing OK\n";
}

allMSgs 是一个结构体:

   typedef struct AllMSgs
{
double msg;
Agent* dedicatedTo;
}allMSgs;

它的声明是这样完成的:

        allMSgs** _msgs;

但是当我尝试像这样访问数组中的一个字段时:

     _msgs[loc]->dedicatedTo=agent->getPointsTo();

我遇到了段错误。

NUMBER_OF_MSGS 是 1000

loc 是 0,1,2....(小于 1000);

请帮忙

最佳答案

您已经制作了一个指针数组,但尚未将它们设置为指向任何有效的地方。您要么需要将其更改为:

allMSgs* _msgs;

和:

new allMSgs[NUMBER_OF_MSGS]

或者为allMSgs中的每个指针调用new数组。

更好的是你可以只使用 std::vector或其他容器,带std::vector<allMSgs> _msgs; ,在大多数情况下,您可以像使用数组一样使用它。你也可以用一个大小来初始化它。

关于c++ - 我无法弄清楚的段错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7295664/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com