使用memcpy复制unsigned short

时间:2012-08-05 15:01:07

标签: struct memcpy

当我尝试将变量'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));
}

我想知道为什么会这样。 任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:1)

因为您没有为myStruct分配内存。您没有初始化它,因此它的值在memcpy()期间是一些随机值。因此,&myStruct->a正在访问某个随机地址,写入&myStruct->a可能会导致运行时错误。