Skip to content

error C2036: “const void *”: unknown size in pointer arithmetic #183

Description

@rsp4jack

In src/duma.c line 2254:

    void *_duma_memmove(void *dest, const void *src, size_t size) {
      char *d = (char *)dest;
      const char *s = (const char *)src;
    
      if (d < s) {
     --> const char *end = src + size;

In MSVC, it will raise an error:

error C2036: “const void *”: unknown size

Because the compiler needs to know the size of the data it points to do the pointer arithmetic.

Note:

int* p = 0x0; // Just for example
p += 1;
// p is 0x4 now

char* cp = 0x0;
cp += 1;
// cp is 0x1 now

So, change this line to:

const char *end = (const char*) src + size;

Metadata

Metadata

Assignees

Labels

No labels
No labels

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions