gpt4 book ai didi

c - 将数组值分配给 C 中的 typedef struct 数组变量

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

我正在使用一个库,它有一个包含一些变量和一个数组的 typedef 结构。我正在尝试将指向此类型变量的指针传递给另一个函数并将值赋给数组。

//typedef in library file
typedef struct
{
int a;
int b;
int arr[5];
} MyType;

...这是在另一个文件中

void foo()
{
MyType newtype;
//...lots of code

setArray( &newtype );

return;
}

void setArray ( MyType* mytype )
{
mytype->arr = {
1,2,3,4,5,
};

return;
}

当我尝试编译此代码时,在

行出现以下错误
mytpe->arr = {

'{' 标记前的预期表达式

我尝试了几种不同的方法,例如 mytype->arr[5] = { 但我遇到了各种语法错误。

我是 C 的新手,但我知道数组实际上充当指向数组中第一个元素的指针。我试图做的是不可能的,我需要遍历每个数组的索引并一次为它们分配一个吗?

最佳答案

你不能像这样给数组赋值。你必须按元素来做,比如:

mytype->arr[0] = 1;
mytype->arr[1] = 2;
...

或使用类似 memcpy 的函数.

const int values[] = {1, 2, 3, 4};
memcpy(mytype->arr, values, sizeof values);

最好确保尺寸和类型合适。

请注意,在初始化(数组声明和定义的一部分)中,您可以在一个“步骤”中设置数组。但这是另一回事。

关于c - 将数组值分配给 C 中的 typedef struct 数组变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32630938/

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