C++ immer Fehler C2440

Hallo, ich bin mit Visual Studio c++ 2010

Ich habe da ein problem mit diesem code ( es ist entnommen aus der Sprache C-code ) :

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;
}

Ich habe diese Fehler :

error C2440: 'initializing' : cannot convert from 'void *' zu 'MEMBLOCK *' 
error C2440: '=' : keine Konvertierung von 'PVOID' in 'unsigned char *' 
error C2440: '=' : keine Konvertierung von 'void *' zu 'unsigned char *' 

Ich bin ein bisschen Neuling. Können Sie bitte einen code umgewandelt, der tatsächlich funktioniert mit c++.

Danke

Wenn Sie versuchen, kompilieren von C-code, verwenden Sie einen C-compiler.
malloc zurück void* müssen Sie explizit casten zu MEMBLOCK*. Wie diese MEMBLOCK *mb = (MEMBLOCK*)malloc(sizeof(MEMBLOCK)); oder besser MEMBLOCK *mb = static_cast<MEMBLOCK*>(malloc(sizeof(MEMBLOCK)));
MEMBLOCK *mb = (MEMBLOCK*)malloc(sizeof(MEMBLOCK)); oder /TC option

InformationsquelleAutor user3735032 | 2014-08-07

Schreibe einen Kommentar