重新>数据 = _malloc(重新>大小 + 8)

ret->data = _malloc(ret->size + 8)

本文关键字:重新 gt 大小 数据 malloc      更新时间:2023-10-16

我正试图在微软visual studio 2013上用C++编译一个为linux编写的程序(是C和C++(#include.h)的混合体,我将在C++中转换所有内容,以免混淆!)

声明:

ret->data = _malloc(ret->size + 8);

返回错误:

IntelliSense:不能将"void*"类型的值分配给"unsigned char*"类型的实体

请帮助

在c++中,您需要将void *显式转换为目标poitner类型,以便修复您的代码

ret->data = static_cast<unsigned char *>(_malloc(ret->size + 8));

或者,使用new/delete[]

ret->data = new unsigned char[ret->size + 8];

一些注意事项,

  1. 如果以后要使用realloc(),则不能使用new/delete[]

  2. 您可能需要将编译器更改为c编译器,因为这显然是c代码,而不是c++。

也许问题出在文件扩展名上,如果给文件一个.cpp.cxx扩展名,它将被编译为c++代码,所以将其更改为.c,它应该可以工作。