error: invalid conversion from ‘void*’ to ‘unsigned char*’ [-fpermissive] 279 | tmp = realloc(*pc->pbufout, newlen);
时间: 2024-02-18 14:03:19 浏览: 145
php-geshi-syntaxerror: invalid syntax
这个错误的原因是realloc函数返回的是void*类型,需要进行强制类型转换才能赋值给unsigned char*类型的变量。
这里提供一种解决方法,可以将realloc函数返回的指针先赋值给void*类型的变量,然后再进行强制类型转换:
```
void* tmp = realloc(*pc->pbufout, newlen);
if (tmp == NULL) {
// 处理内存分配失败的情况
} else {
*pc->pbufout = (unsigned char*)tmp;
}
```
这样就可以避免编译器报错了。另外,建议开启-fpermissive选项,这样可以让编译器更容易地兼容旧代码,但也可能会导致一些潜在的问题。
阅读全文