我有简单的结构:
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;
}
我可以一个一个地初始化值,但是我会越来越好。您是否有适当的想法?
如果要返回一个指向类型为的新对象的指针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] 删除。
我来说两句