C++ 传递到函数时出现分段错误“;“地图容器”;参照

C++ 传递到函数时出现分段错误“;“地图容器”;参照,c++,C++,各位好, 我有一张地图 typedef boost::unordered_map <flow_t, individual_flow_table, fhash, fequal_to> flow_redundancy_map_t; 我在插入到“red_table”时遇到了一个分段错误。 我和它给我的valgrind一起跑步 “条件跳转或移动取决于代码插入行的未初始化值” 或者,我没有在函数“winnow”中通过引用传递“red\u table”,而是再次索引(使用相同的流)到“

各位好,

我有一张地图

typedef  boost::unordered_map <flow_t, individual_flow_table, fhash, fequal_to>   flow_redundancy_map_t; 
我在插入到“red_table”时遇到了一个分段错误。 我和它给我的valgrind一起跑步 “条件跳转或移动取决于代码插入行的未初始化值”

或者,我没有在函数“winnow”中通过引用传递“red\u table”,而是再次索引(使用相同的流)到“sorted\u flow”映射中,并将“red\u table”放在适当的位置。它工作得很好

我想这与通过引用传递有关。 我在C++上有点绿色,虽然在C.相当熟练。 任何指针都会非常有用。如果需要,我还可以提供更多的澄清

多谢各位
Govind

我认为这里没有足够的信息可以直接为您提供建议。(如果代码示例的格式更好,这会有所帮助,但这只是问题的一部分。)

但是,您可以尝试将失败的代码分解为单独的行,以便更好地了解失败的原因。例如:

    pair<unsigned long long, pkt_data> tmpValue = make_pair(some_key, some_value);
    red_table.insert(tmpValue);
如果是,请尝试一次初始化一个:

unsigned long long some_key = 0, some_value;


查看其中哪一个产生了未初始化值警告。

能否提供代码片段,显示
it
从何处获取值,以及哪些替代代码有效?还有可能是Valgrind提供的更多详细信息?您是否还有更多的代码来计算
some_value
的值?
it
是否也已初始化?谢谢大家的回复。我有点忙,所以不能对你的建议作出回应。我已经找到了原因,这是一个愚蠢的错误(变量名在映射的一个实例中输入错误,不幸的是,我将此变量再次定义为相同的映射类型,但没有使用!映射-red_表的变量名在一个使用实例中输入错误(在一个插入中)。谢谢Dan!这只是一个愚蠢的错误,导致了seg错误!。而且某些_值的类型不是unsigned long long。在这里写出来时,我输入了错误的值
    pair<unsigned long long, pkt_data> tmpValue = make_pair(some_key, some_value);
    red_table.insert(tmpValue);
unsigned long long some_key = 0, some_value = 0;
unsigned long long some_key = 0, some_value;
unsigned long long some_key, some_value = 0;