gpt4 book ai didi

c - 结构体中元素之一的数组初始化

转载 作者:行者123 更新时间:2023-11-30 15:52:53 25 4
gpt4 key购买 nike

我已经为结构中的一个元素初始化了数组,打印输出时出现一些错误,请指出错误并指导解决它。谢谢!

#include<stdio.h>

typedef struct person
{
int row[3];
int age;
}PERSON;

int main()
{
int i;
PERSON p;
PERSON *pptr=&p;
pptr->row[3] = {4,5,6};

for (i = 0; i < 3; i++) {
printf (" %d\n", pptr->row[i]);

}
return 0;
}

最佳答案

C 语言中的数组对象是不可赋值的。您无法使用赋值来设置整个数组中的值。因此,使用赋值语法来完成您想要做的事情是不可能的。

您有机会在声明时初始化数组,即定义对象时 p

PERSON p = { { 4, 5, 6 }  };

但你没有利用这个机会。之后再使用纯粹的核心语言功能就为时已晚了。

要在声明点之后设置整个数组中的值,您可以使用库函数(例如 memcpy)与复合文字结合使用

memcpy(pptr->row, (int []) {4, 5, 6}, sizeof pptr->row);

关于c - 结构体中元素之一的数组初始化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14028706/

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