编译器警告(等级 1)C4739

对变量“var”的引用超过了其存储空间

将值赋给了变量,但是该值的大小超过变量的大小。 内存将写入变量的内存位置之外,并且可能丢失数据。

要消除此警告,仅需将值赋给其大小可容纳该值的变量。

下面的示例生成 C4739:

// C4739.cpp
// compile with: /RTCs /Zi /W1 /c
char *pc;
int main() {
   char c;
   *(int *)&c = 1;   // C4739

   // OK
   *(char *)&c = 1;
}