当PROGRAMM执行此私有方法表达:地图/套迭代器不递增的
map<char*, vector<MAILPACK>>::iterator mit;
vector<MAILPACK>::iterator dit;
for(mit=funcs.begin(); mit!=funcs.end(); mit++) {
TRACE tr;
tr.crc32 = crc32;
strncpy(tr.name, (*mit).first, sizeof(tr.name));
int i = 0;
for(dit=(*mit).second.begin(); dit!=(*mit).second.end(); dit++){
tr.nodes[i++] = dit->dwAddr;
}
}
我收到错误,如:Expression:map/set iterator not incrementable
此功能通过迭代私人地图std::map<char*, std::vector<MAILPACK>> funcs;
如果我错了? Thx
P.S.哦,我发现在将地址保存到tr.nodes中时我没有控制边界。 但这不是重点...
你可以为函数或任何已定义的函数提供头文件 – Rolle 2012-08-07 12:53:03
如果您认为自己可能在'tr.nodes'的末尾涂写,并且这是一个运行时错误,那么您可能会覆盖'mit'。你检查过了吗? – Chowlett 2012-08-07 12:54:21
你实现内循环的方式意味着你从tr.nodes [1]开始为dit.begin() - > dwAddr;那是故意的吗? – Moritz 2012-08-07 13:47:24