首页 > 解决方案 > 将结构元素添加到c中的数组的最佳方法?

问题描述

我有一个这样的结构:

typedef struct
{
    char title[length];
    char createdDate[length];
    int completed;
} Todo;

以及这些待办事项的数组

Todo todolist[100];

和元素:

Todo newTodo = {...}

将元素添加到数组的最佳方式是什么?

标签: c

解决方案


对于常规数组,只需执行以下操作:

todolist[index] = newTodo;

但是,如果您需要它,明智的做法是添加一个字段来指示单元格是否已初始化,这样您就知道它是否包含有价值的信息。你可以这样做:

typedef struct
{
    int initialized;
    char title[length];
    char createdDate[length];
    int completed;
} Todo;

Todo todolist[100] = {0}; // This initialization is important

现在我们可以使用这样的东西将第一个空闲单元分配给一个新的Todo

size_t i=0;

while( !todolist[i].initialized ) {
    i++;

    if( i >= 100 ) {
    /* Handle error */
    }
}

todolist[i] = newTodo;

推荐阅读