首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >初始化作为结构数组索引的C结构

初始化作为结构数组索引的C结构
EN

Stack Overflow用户
提问于 2020-03-04 05:24:03
回答 1查看 193关注 0票数 0

我有这样的结构:

代码语言:javascript
复制
typedef struct {
    char* name;
    int number;
} Customer;

我还有一个客户结构数组。我想用一个包含名称和数字的客户结构来初始化数组的每个索引。下面是实现该功能的代码:

代码语言:javascript
复制
Customer* customerArray = malloc (5 * sizeof(Customer));
customerArray[0] = { "Name", 1 };

我收到了一个编译器错误,显示为"Expected“,没有其他内容。对于我尝试以这种方式初始化的每个数组索引,都会发生这种情况。但是,如果我这样做:

代码语言:javascript
复制
Customer myCustomer = { "Name", 1 };

我没有收到编译器错误。为什么我只在尝试初始化数组中的结构时才得到这个错误?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-03-04 05:28:44

此语法无效:

代码语言:javascript
复制
customerArray[0] = { "Name", 1 };

因为这不是一个初始化,而是一个赋值,并且一组带括号的值只能在初始化时使用。

您可以单独设置每个字段:

代码语言:javascript
复制
customerArray[0].name = "Name";
customerArray[0].number = 1;

或者,您可以使用复合文字进行赋值:

代码语言:javascript
复制
customerArray[0] = (Customer){ "Name", 1 };
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60515742

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档