在写G.vexs[i]= (VerTexType)malloc(sizeof(VerTexType));时发生[Error] cast from 'void*' to 'VerTexType {aka char}' loses precision
时间: 2024-01-20 22:03:46 浏览: 26
这个错误通常发生在将void类型指针转换为其他类型时,但转换后的类型的大小比void类型更小,导致精度丢失。在你的代码中,可能是在将void类型指针转换为VerTexType类型时出现了这个问题。
你可以尝试使用以下转换方式,将void指针转换为VerTexType指针:
```c
G.vexs[i] = (VerTexType*)malloc(sizeof(VerTexType));
```
这样就可以将void指针转换为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));
在这段代码中,G.vexs[i]的类型是VerTexType,是一个结构体或基本数据类型,而malloc函数的返回值是void指针,需要将其转换为VerTexType指针才能赋值给G.vexs[i]。
因此,代码中的 `(VerTexType)` 就是将void指针转换为VerTexType指针的强制类型转换。然后,`malloc(sizeof(VerTexType))` 分配了一块大小为VerTexType的空间,并将其地址转换为VerTexType指针,赋值给了G.vexs[i]。
具体来说,这段代码是在为一个图的顶点分配空间。G.vexs是一个指针数组,每个元素都指向一个顶点结构体。因此,对于每个顶点,我们需要分配一定的空间来存储它的数据。这里使用了动态内存分配函数malloc来分配空间,而强制类型转换将其转换为正确的指针类型,以便将其赋值给G.vexs[i]。
需要注意的是,使用malloc分配的空间需要手动释放,否则会导致内存泄漏。因此,在程序结束时,需要使用free函数释放G.vexs中所有元素所分配的空间。例如:
```c
for (int i = 0; i < G.vexnum; i++) {
free(G.vexs[i]);
}
```
这样就可以释放所有顶点所占用的空间了。
在写G.vexs[i] = (VerTexType)malloc(sizeof(struct VerTexType));时遇到[Error] cast from 'void*' to 'VerTexType {aka char}' loses precision [-fpermissive]
这个错误通常发生在将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]);
}
```
这样就可以释放所有顶点所占用的空间了。
相关推荐
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![doc](https://img-home.csdnimg.cn/images/20210720083327.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)
![](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)