当我尝试将变量'b'的值复制到变量'a'时,我有'运行时错误'。
#include <stdio.h>
#include <string.h>
typedef struct{
unsigned short a;
}st1;
main()
{
st1* myStruct;
unsigned short b = 0xFFFF;
memcpy(&myStruct->a, &b,sizeof(b));
}
我想知道为什么会这样。 任何帮助将不胜感激。
答案 0 :(得分:1)
因为您没有为myStruct
分配内存。您没有初始化它,因此它的值在memcpy()
期间是一些随机值。因此,&myStruct->a
正在访问某个随机地址,写入&myStruct->a
可能会导致运行时错误。