以下邻接矩阵适用于从1到7913的所有数字。
每当用户输入7914或更高时,就会产生以下错误:
异常抛出0x009818B9访问冲突读取位置0x00550004
addEdge()
newNode->next = graph->array[dest].head
为什么它对输入1到7913有效,但是在任何大于或等于7914的数字时都会引发访问冲突?
代码已修复
//edit_removed_code
答案 0 :(得分:2)
int V = 5;
struct Graph* graph = createGraph(V);
- >每个节点>=5
都会导致未定义的行为。
它仅适用于7913,这是由于平台内存分配的实现(可能保留整个PAGE_SIZE对齐区域)引起的。
不要依赖这样的行为并分配足够的内存。捕获无效的节点号!