gpt4 book ai didi

c - 如何使用memcpy初始化struct中的数组

转载 作者:太空宇宙 更新时间:2023-11-04 01:21:08 24 4
gpt4 key购买 nike

我有简单的结构:

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;
}

我可以一个一个地初始化值,但我认为 memcpy 会更好更快。您对如何正确执行有任何想法吗?

最佳答案

如果你想返回一个指向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;
}

关于c - 如何使用memcpy初始化struct中的数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42191222/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com