引发了异常: 读取访问权限冲突。 **m** 是 nullptr。
时间: 2024-01-17 09:18:20 浏览: 88
浅析A*算法在搜索最短路径的应用
根据提供的引用内容,错误提示中提到了`Tree_Bp`和`g_pHead`都是`nullptr`,并且在代码中有关于创建头结点的函数`CreatListOfHead()`。根据代码和错误提示,可以推断出问题可能出现在创建头结点的函数中。
根据代码中的注释和函数实现,可以看到在`CreatListOfHead()`函数中,创建了一个名为`g_pHead`的指针,并分配了内存空间。然后,通过判断`g_pHead`是否为空来设置`g_pHead`的`next`指针为`NULL`。但是,在`if`语句块之外,`g_pHead`的值仍然是`nullptr`,因此在后续的代码中,当判断`g_pHead`是否为空时,会引发访问权限冲突的异常。
为了解决这个问题,可以将`g_pHead`声明为全局变量,或者将其作为参数传递给`CreatListOfHead()`函数,并在函数内部修改其值。另外,还需要确保在使用`g_pHead`之前,已经调用了`CreatListOfHead()`函数来创建头结点。
以下是修改后的代码示例:
```cpp
Node* g_pHead = nullptr; // 声明全局变量
// 创建头结点
void CreatListOfHead(Node*& head) {
head = (Node*)malloc(sizeof(Node));
if (head) {
head->next = NULL;
}
}
// 学生信息文件读取
if (g_pHead == NULL) {
CreatListOfHead(g_pHead); // 调用创建头结点函数
}
```
阅读全文