重新>数据 = _malloc(重新>大小 + 8)
ret->data = _malloc(ret->size + 8)
我正试图在微软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];
一些注意事项,
如果以后要使用
realloc()
,则不能使用new
/delete[]
。您可能需要将编译器更改为c编译器,因为这显然是c代码,而不是c++。
也许问题出在文件扩展名上,如果给文件一个.cpp
或.cxx
扩展名,它将被编译为c++代码,所以将其更改为.c
,它应该可以工作。
相关文章:
- 在全局变量中保存类的实例以重新创建类(创建"backup")
- 在运行时处理类型擦除的数据-如何不重新发明轮子
- 使用指针重新分析实体
- 从类继承时,继承的类是否会通过父类重新定义继承的变量
- 对C宏的未定义引用,但在定义它时会出现重新定义错误
- 有没有一种方法可以通过"typedef"为重新定义的基本类型定义特征和强制转换运算符
- 类的C++属性似乎已重新初始化
- flutter:即使shouldRepaint()返回true,自定义画家也不会重新绘制
- 我可以重新分配/覆盖std::字符串吗
- EASTL矢量<向量<int>>连续的
- 使用RAII在给定次数的迭代后重新分配资源
- QTcpSocket在不阻塞GUI的情况下重新连接到服务器
- 重新定位图像时如何前进到下一个内存块
- 绘制顺时针三角形,重新排序点
- C++17 - 使用自定义分配器的节点提取/重新插入 - 适用于 clang++/libc++,但不适用于 libstd
- C++重新引用向量中的值
- GLEW/GLUT:调用init并创建一个窗口后,取消初始化并重新初始化?
- 如何重新定义MPI_FLOAT,MPI_DOUBLE以 typedef 的方式
- 重新排列单线以形成闭合多边形?
- WINAPI 注册应用程序重新启动时不清除打开的套接字