编译器错误 C2036

“identifier”:未知大小

identifier 的操作需要数据对象的大小,该大小无法确定。

示例

以下示例生成 C2036。

// C2036.c
// a C program
struct A* pA;
struct B { int i; } *pB;
int main() {
   pA++;   // C2036, size of A not known
   ((char*)pA)++;   // OK

   pB++;   // OK
}

以下示例生成 C2036。

// C2036_2.cpp
// a C++ program
struct A* pA;
int main() {
   pA++;   // C2036, size of A not known
   ((char*&)pA)++;   // OK, if sizeof(A) == sizeof(char)
}