c - 将结构元素添加到c中的数组的最佳方法?
问题描述
我有一个这样的结构:
typedef struct
{
char title[length];
char createdDate[length];
int completed;
} Todo;
以及这些待办事项的数组
Todo todolist[100];
和元素:
Todo newTodo = {...}
将元素添加到数组的最佳方式是什么?
解决方案
对于常规数组,只需执行以下操作:
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;
推荐阅读
- c - 我的 Cs50 凯撒密码程序有效,但无法通过 check50 测试
- android - 没有这样的表:@DatabseView
- flask - Flask Google Login with Google Drive access
- c# - ASP.NET Core MVC & C#:使用实体框架将数据插入数据库
- ruby-on-rails - 如何为 created_at 创建范围搜索功能
- vb.net - 随机数生成每次都产生相同的数字
- python - 在 if/else 语句上打开随机 tkinter 窗口
- r - Error in lm.fit(x, y, offset = offset, singular.ok = singular.ok, ...) : NA/NaN/Inf in 'y' In addition:
- docker - 服务 PHP 未能构建 Docker
- spring-data-elasticsearch - 如何禁用 Spring Data Elasticsearch 中的任何写入操作?