我有一个关于在结构及其可靠性上使用 memset 和 memcopy 的问题。例如:
我有一个看起来像这样的代码
typedef struct
{
short a[10];
short b[10];
}tDataStruct;
tDataStruct m,n;
memset(&m, 2, sizeof(m));
memcpy(&n,&m,sizeof(m));
我的问题是,
1):在 memset 中,如果我设置为 0 就可以了。但是当设置 2 时,我将 ma 和 mb 设为 514 而不是 2。当我将它们设为 char 而不是 short 时,这很好。这是否意味着我们不能将 memset 用于除 0 之外的任何初始化?它是对例如缩写的限制吗
2):在上述两个short类型的结构之间做memcopy是否可靠。我有一大串 a,b,c,d,e... 我需要确保副本是一对一的完美。
3):我最好在单个数组上使用 memset 和 memcopy,而不是像上面那样在结构中收集?
再一问,
在上面的结构中,我有变量数组。但是,如果我传递了指向这些数组的指针,并且我想将这些指针收集到一个结构中
typedef struct
{
short *pa[10];
short *pb[10];
}tDataStruct;
tDataStruct m,n;
memset(&m, 2, sizeof(m));
memcpy(&n,&m,sizeof(m));
在这种情况下,如果 i 或 memset 的 memcopy 它只会更改地址而不是值。我该如何更改这些值?原型错了吗?
请建议。你的投入非常小
谢谢dsp大佬