[Error] invalid conversion from void* to char** [-fpermissive]
时间: 2023-12-25 14:03:16 浏览: 72
这个错误通常是因为你在进行指针类型转换时,将一个void指针转换成char类型指针的时候出现的。由于void指针可以指向任何类型的内存地址,而char类型指针只能指向字符类型的内存地址,所以这样的转换是不安全的。
要解决这个问题,你可以尝试使用正确的类型进行指针转换,或者使用C++中的reinterpret_cast来进行类型转换。另外,你也可以检查一下你的代码,看看是否存在其他类型转换错误。
相关问题
error: invalid conversion from ‘void*’ to ‘unsigned char*’ [-fpermissive] 279 | tmp = realloc(*pc->pbufout, newlen);
这个错误是因为在C语言中,`realloc`函数返回的是 `void*`类型的指针,需要进行类型转换才能赋给其他类型的指针。你可以将这行代码改为:
```c
tmp = (unsigned char*) realloc(*pc->pbufout, newlen);
```
这样就可以将`void*`类型的指针转换为`unsigned char*`类型的指针了。
col_val[index] = malloc(strlen(token) + 1);报错[Error] invalid conversion from 'void*' to 'char*' [-fpermissive]
这个错误是因为 `malloc` 函数返回的是 `void` 指针,需要将其转换为 `char` 指针类型。可以使用强制类型转换来解决这个问题,如下所示:
```
col_val[index] = (char*)malloc(strlen(token) + 1);
```
或者使用 `calloc` 函数来分配内存,该函数返回的已经是指定类型的指针,不需要进行类型转换,如下所示:
```
col_val[index] = calloc(strlen(token) + 1, sizeof(char));
```
这两种方法都可以解决这个问题。但是需要注意的是,在使用 `malloc` 或 `calloc` 分配内存时,需要在使用完毕后及时释放分配的内存,以避免内存泄漏的问题。
阅读全文