【问题标题】:C Structure initialization (Array of integers and an integer value)C结构初始化(整数数组和整数值)
【发布时间】:2014-08-17 22:41:46
【问题描述】:
#define MAX 10
struct setArray
{
    int item[MAX];
    int count;
};
typedef struct setArray *BitSet;

我应该如何初始化结构中的元素?

【问题讨论】:

  • 旁白:1) typedef struct setArray *BitSet; 虽然合法,但在某些风格指南中不受欢迎:建议避免(存在例外)创建指针的 typedef。取而代之的是 typedef struct setArray BitSet; BitSet *p = malloc(sizeof *p); 2) int 用于数组大小计数器的可移植性不如 size_t count

标签: c arrays initialization structure


【解决方案1】:

例如

struct setArray s = { { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }, MAX };

或者

struct setArray s;

for ( int i = 0; i < MAX; i++ ) s.item[i] = i;
s.count = MAX;

或者

BitSet p = malloc( sizeof( *p ) );

for ( int i = 0; i < MAX; i++ ) p->item[i] = i;
p->count = MAX;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-05-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-11
    • 1970-01-01
    • 2014-02-26
    相关资源
    最近更新 更多