以上代码报错[Error] cannot convert 'MGraph*' to 'ALGraph*' for argument '1' to 'void DFS(ALGraph*, int, int*)'
时间: 2024-01-28 22:05:35 浏览: 132
这个错误提示的意思是无法将 `MGraph*` 类型的指针转换为 `ALGraph*` 类型的指针,以便作为参数传递给 `DFS` 函数。
这个问题可能是因为你的 `DFS` 函数的参数类型是 `ALGraph*`,但你的调用中传递的参数是 `MGraph*` 类型的指针。你需要将参数类型改为 `MGraph*`,或者将调用中的参数类型改为 `ALGraph*`,以使它们匹配。
如果你需要将一个 `MGraph` 转换为一个 `ALGraph`,可以编写一个函数来完成这个转换。例如:
```cpp
void convertMGraphToALGraph(MGraph* mg, ALGraph* alg) {
// 将 mg 转换为 alg
// ...
}
```
然后在调用 `DFS` 函数之前,可以先将 `MGraph` 转换为 `ALGraph`,再将转换后的 `ALGraph` 作为参数传递给 `DFS` 函数。
相关问题
165 14 E:\AAsoft\suanfa\exp6\MGraph.cpp [Error] cannot convert 'ALGraph' to 'ALGraph*' for argument '1' to 'void DispAdj(ALGraph*)'
这个错误提示看起来是函数参数类型不匹配导致的。你调用了 `DispAdj` 函数,传入的参数类型是 `ALGraph`,但是函数定义中参数类型是 `ALGraph*`,两者不匹配。你需要把参数类型改成指针类型,或者在传入参数时取地址符 `&` 来将 `ALGraph` 类型的变量转换为指针类型。
示例代码:
```
// 函数定义
void DispAdj(ALGraph* G) {
// 函数实现
}
// 函数调用
ALGraph G;
DispAdj(&G); // 传入 G 的地址
```
MGraph* CreateGraph() { MGraph *G; int i,j,k; G=(MGraph*)malloc(sizeof(MGraph));这个什么意思
这段代码定义了一个名为 CreateGraph 的函数,该函数返回一个 MGraph 类型的指针。
在函数内部,首先定义了一个指向 MGraph 结构体的指针 G,然后使用 malloc 函数给 G 分配了一块大小为 MGraph 结构体大小的动态内存空间。
最后,函数返回指向 G 的指针。
这个函数的作用是创建一个空的基于邻接矩阵的图,并返回一个指向该图的指针,供后续的图操作使用。
阅读全文