Error 1 error C2036: 'const void *' : unknown size file.cpp 111
我不听。 GCC 从不提示 void * 指针运算,即使在 -ansi -pedantic -Wall
上也是如此。有什么问题?
这是代码-
struct MyStruct {
const void *buf; // Pointer to buffer
const void *bufpos; // Pointer to current position in buffer
};
...
size_t someSize_t, anotherSize_t;
MyStruct *myStruct = (MyStruct *) userdata;
...
if ( (myStruct->bufpos + someSize_t) >
(myStruct->buf + anotherSize_t) ) { // Error on this line
...
最佳答案
您不能对 void *
指针进行指针数学运算。将 oData->bufpos
和 oData->anotherConstVoidPtr
转换为编译器知道如何处理的内容。由于您似乎在寻找可能以字节为单位的大小,因此转换为 char *
应该可行:
if (((char *)oData->bufpos + someSize_t) ...
关于c++ - 在 MSVC 中对 void * 执行指针运算时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3498850/