Dijkstra 中0x001e1078 s_Algorithm.exe的未处理异常:0xC0000005:访问冲突读取位置0xbaadf00d
Unhandled exception at 0x001e1078 in Dijkstra's_Algorithm.exe: 0xC0000005: Access violation reading location 0xbaadf00d
我正在将状态类的指针设置为节点的指针,但我收到访问冲突我不知道问题是什么?
例外在这里:iosfwd
static int __CLRCALL_OR_CDECL compare(const _Elem *_First1, const _Elem *_First2,
size_t _Count)
{ // compare [_First1, _First1 + _Count) with [_First2, ...)
return (_CSTD memcmp(_First1, _First2, _Count));
}
我的代码在DijkstraState.h
void setCurrent(vertex<T>* v)
{
current = v ;
}
在图形中。
private member: DijkstraState<type>* states ;`
in constructor: states = new DijkstraState<type>();
template <class type>
void graph<type>::add_vertex(vertex<type> input)
{
type vertex_data = input.get_data() ;
//check vertex does not exist
if(indexes.find(vertex_data) == indexes.end())
{
indexes[input.get_data()] = count ;
vertices[count] = input ;
states[count].setCurrent(&(vertices[count]));//////////////////////////
count ++ ;
}
}
input
是函数的参数。您可以将其视为使用从调用方传入的值初始化的局部变量。当函数返回时,该参数变量将超出范围。您将在对setCurrent
的调用中保存指向input
的指针,如果您在完成后尝试使用该指针,则会留下无效add_vertex
和未定义的行为。
您尚未显示足够的代码来知道如何修复它。我不知道states
是做什么用的,count
是从哪里来的,或者为什么需要保存指向变量的指针。
相关文章:
- 在类 12.exe 中0x7B37FF80 (ucrtbased.dll) 引发异常: 0xC0000005:访问冲突读
- (此函数用于计算 SMA).在 FA.exe 中0x00509159引发异常: 0xC0000005:访问冲突读取位置0
- 0x0F50DF58:0xC0000005:访问冲突读取位置0x0047CA04时未处理的异常
- 实验室中0x6BE20E11 (ucrtbased.dll) 的未处理异常.exe: 0xC0000005:访问冲突读取
- 在 "<name>.exe" 中0x00007FFF168E1657 (vcruntime140d.dll) 引发异常:0xC0000005:访问冲突写入位置0x0000000000000
- mystring.exe中的0x0FC9E559(ucrtbaseed.dll)的未经手法异常:0xc0000005:访
- 在2.exe中的0x00DE181818的未经手法异常:0xc0000005:访问违规写作位置0xcd7cbe10
- NVIDIA 在 <work.exe>0xC0000005 中0x002a2da2未处理的异常:访问违规读取位置0x00000000
- 在 DirectXGame.exe 中0x00B84CD6出现未经处理的异常:0xC0000005:访问冲突读取位置0x
- OpenGL 和 GLUT 中0x009f240e处未处理的异常 - 101.exe:0xC0000005:访问违规写入
- Dijkstra 中0x001e1078 s_Algorithm.exe的未处理异常:0xC0000005:访问冲突读取位置0xbaadf00d
- BunkerBuilder.exe中0x0070C75C处的首次机会异常:0xC0000005:写入位置0xCCCCC0
- 引擎.exe 0x00000000时未处理的异常: 0xC0000005:访问冲突
- 0xC0000005中0x770115de处未处理的异常:使用递归矢量搜索读取位置0xccccccc0时发生访问冲突
- main.exe 中0x779615de处未处理的异常:0xC0000005:访问违规写入位置0x003f0014
- 错误 linkedlist .exe 中0x00D0345E处的未处理异常: 0xC0000005:访问违规写入位置0x
- 空引用如何导致代码0xc0000005的 SEH 异常
- 首次插入静态 STL 集会导致引发未经处理的异常0xC0000005:引发访问冲突
- 程序.exe中0x010F2F1C时未处理的异常: 0xC0000005:访问冲突读取位置0xCCCCCCD0
- 第 1 章.exe中0x003860EF未处理的异常: 0xC0000005:访问违规写入位置0x0038EE7C