在写G.vexs[i] = (VerTexType)malloc(sizeof(struct VerTexType));时遇到[Error] cast from 'void*' to 'VerTexType {aka char}' loses precision [-fpermissive]
时间: 2024-01-31 18:03:38 浏览: 27
这个错误通常发生在将void类型指针转换为其他类型时,但转换后的类型的大小比void类型更小,导致精度丢失。在你的代码中,可能是在将void类型指针转换为VerTexType类型时出现了这个问题。
你需要将代码改成下面这样:
```c
G.vexs[i] = (VerTexType)malloc(sizeof(struct VerTexType));
```
这样就可以将指向VerTexType类型的指针转换为VerTexType类型了。需要注意的是,使用malloc分配的空间需要手动释放,否则会导致内存泄漏。在程序结束时,需要使用free函数释放G.vexs中所有元素所分配的空间。例如:
```c
for (int i = 0; i < G.vexnum; i++) {
free(G.vexs[i]);
}
```
这样就可以释放所有顶点所占用的空间了。
相关问题
在写G.vexs[i] = (VerTexType*)malloc(sizeof(VerTexType));时发生[Error] invalid conversion from 'VerTexType* {aka char*}' to 'VerTexType {aka char}' [-fpermissive]
这个错误通常发生在将指针类型转换为非指针类型时,或者将不同类型的指针进行转换时。在你的代码中,可能是在将VerTexType指针转换为VerTexType类型时出现了这个问题。
你需要将代码改成下面这样:
```c
G.vexs[i] = (VerTexType)malloc(sizeof(struct VerTexType));
```
这样就可以将指向VerTexType类型的指针转换为VerTexType类型了。需要注意的是,使用malloc分配的空间需要手动释放,否则会导致内存泄漏。在程序结束时,需要使用free函数释放G.vexs中所有元素所分配的空间。例如:
```c
for (int i = 0; i < G.vexnum; i++) {
free(G.vexs[i]);
}
```
这样就可以释放所有顶点所占用的空间了。
typedef struct{ VerTexType vexs[MVNum]; //顶点表 ArcType arcs[MVNum][MVNum]; //邻接矩阵 int vexnum,arcnum;//图当前的点数和边数 }AMGraph; 在写G.vexs[i] = (VerTexType)malloc(sizeof(struct VerTexType));时遇到[Error] cast from 'void*' to 'VerTexType {aka char}' loses precision
在你的代码中,VerTexType被定义为一个结构体,而不是一个基本类型。所以,你需要将malloc返回的void指针转换为指向VerTexType结构体的指针类型,而不是转换为VerTexType类型。
下面是一种正确的写法:
```c
G.vexs[i] = malloc(sizeof(VerTexType));
```
这里不需要使用强制类型转换,因为malloc返回的是void指针,可以自动转换为任何指针类型。
需要注意的是,使用malloc分配的空间需要手动释放,否则会导致内存泄漏。在程序结束时,需要使用free函数释放G.vexs中所有元素所分配的空间。例如:
```c
for (int i = 0; i < G.vexnum; i++) {
free(G.vexs[i]);
}
```
这样就可以释放所有顶点所占用的空间了。
相关推荐
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)