linux从类型void*到类型data*的转换无效,编译时出错:从'void*'到'unsigned char*'的无效转换...
时间: 2023-06-17 07:08:40 浏览: 142
iccavr编译putchar未定义时解决方案实用.pdf
这个错误可能是因为您试图将 `void*` 类型的指针转换为 `data*` 类型的指针,但是编译器无法确定如何进行转换,因为 `void*` 类型的指针不指向任何特定类型的数据。要解决这个问题,您需要将 `void*` 类型的指针转换为 `unsigned char*` 类型的指针,然后再将其转换为 `data*` 类型的指针。示例代码如下:
```
void* ptr = malloc(sizeof(data));
data* dp = (data*)((unsigned char*)ptr);
```
在这个示例中,我们首先将 `void*` 类型的指针 `ptr` 转换为 `unsigned char*` 类型的指针,然后再将其转换为 `data*` 类型的指针 `dp`。这样可以避免编译器报错,并且能够正确地将 `void*` 类型的指针转换为 `data*` 类型的指针。
阅读全文