如何使用Memcpy初始化结构体中的数组

阿尔卡迪乌斯·库列塔(Arkadiusz Kuleta)

我有简单的结构:

typedef struct{
double par[4];
}struct_type;

我也为其初始化函数,其中一个参数是4个元素的数组。如何正确使用memcpy在struct中初始化数组?这样的事情对我不起作用:

 struct_type* init_fcn(double array[4]){

 struct _type* retVal;
 retVal->par=malloc(sizeof(double)*4);
 memcpy(retVal->par,&array);

return retVal;
}

我可以一个一个地初始化值,但是我会越来越好。您是否有适当的想法?

斯蒂芬·莱希纳(Stephan Lechner)

如果要返回一个指向类型为的新对象的指针struct_type,则应完全创建一个这样的对象,即使用malloc(sizeof(struct_type))而不是直接为任何成员分配空间。因此,您的代码可能如下所示:

struct_type* init_fcn(double array[4]){

    struct_type* retVal;
    retVal = malloc(sizeof(struct_type));
    if (retVal) {
        memcpy(retVal->par,array,sizeof(retVal->par));
    }

    return retVal;
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章