您好,我正在使用 Visual Studio c++ 2010
这段代码(取自 C 语言代码)有问题:
MEMBLOCK* create_memblock (HANDLE hProc, MEMORY_BASIC_INFORMATION *meminfo)
{
MEMBLOCK *mb = malloc(sizeof(MEMBLOCK));
if (mb)
{
mb->hProc = hProc;
mb->addr = meminfo->BaseAddress;
mb->size = meminfo->RegionSize;
mb->buffer = malloc(meminfo->RegionSize);
mb->next = NULL;
}
return mb;
}
我有这些错误:
error C2440: 'initializing' : cannot convert from 'void *' to 'MEMBLOCK *' error C2440: '=' : cannot convert from 'PVOID' to 'unsigned char *' error C2440: '=' : cannot convert from 'void *' to 'unsigned char *'
我有点新手。您能否为此提供一个实际适用于 C++ 的转换代码。
谢谢
最佳答案
由于您使用 C++ 进行编程,因此不应使用旧的 C 函数 malloc
。相反,我建议您使用 C++ new
构造:
MEMBLOCK *mb = new MEMBLOCK;
关于C++ 获取错误 C2440,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25186563/