热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

数组指向的结构?[C]-Structpointedbyanarray?[C]

Imtryingtomakeaprogramthatusesastructurepointedbyanarrayof30.Whichmeans,therewil

I'm trying to make a program that uses a structure pointed by an array of 30. Which means, there will be only 30 available structures named Person. Think of this as an Activity line, the Activity line can only have 30 active Persons. Functions used are:

我正在尝试制作一个程序,它使用一个由30个数组指向的结构。也就是说,只有30个可用的结构命名为Person。认为这是一个活动线,活动线只能有30个活动人士。功能使用:

#include 
#include 

struct Person
{
    char name[40];
    char firstname[40];
    int CIN[12];
};

typedef struct Person *Activity;

main()
{
    Activity act[30];
    return 0;
}

Vacant(searches if there is an empty place in the Activity line).

空(如果活动行中有一个空位置)。

insertion(Inserts new Persons IF a place is empty in the Activity line).

插入(如果活动线中的位置为空,则插入新的人员)。

withdrawal(Removes a Person from the Activity line).

退出(从活动行中删除一个人)。

This is the declaration of the structure and the Activity line:

这是结构和活动线的声明:

CIN is French for National Card Identity.

CIN在法语中是“身份证”的意思。

The functions are:

功能有:

vacant(Activity act, int index);
insertion(Activity act, int index);
withdrawal(Activity act);

index is the number of the empty place, must be used in insertion.

索引是空白处的数目,必须用于插入。

My questions are:

我的问题是:

  1. Is the declaration I made correct?
  2. 我的声明是正确的吗?
  3. If; considering the declaration is correct, the size of the array is 30 and the array points to the structure, does it mean I don't need to allocate the memory dynamically?(Using malloc function).
  4. 如果;考虑到声明是正确的,数组的大小为30,数组指向结构,这是否意味着我不需要动态地分配内存?(使用malloc函数)。
  5. Considering I'm on the right path. Does accesing field "name" for example go like this: "act.name"?
  6. 考虑到我在正确的道路上。例如,accesing字段的“name”是这样的:“act.name”?

1 个解决方案

#1


4  

  1. In the declaration I cannot find anything terribly wrong

    在《宣言》中,我看不出有什么严重的问题

  2. Since it is an array of pointers to structs and not an array of structs, you just have to use malloc when you create a Person and then assign the returned pointer to one position of the array. But you do not need to use malloc at any other time with the code shown.

    由于它是指向结构体的指针数组,而不是指向结构体的数组,所以您只需在创建Person时使用malloc,然后将返回的指针分配到数组的一个位置。但是您不需要在其他任何时候使用malloc来处理所显示的代码。

  3. No, the dot is to access a field of an struct, for example if you have Person peter it would be peter.name. To access the struct from the array it should be (*act[i]).name or act[i]->name.

    不,点是访问一个结构的字段,例如,如果你有一个人彼得,那就是彼得。要从数组中访问结构体,它应该是(*act[i]).name或act[i]->name。

Hope this helps you; I am learning as you so maybe a more experienced user can help you more.

希望这可以帮助你;我和你一样在学习,也许一个更有经验的用户可以帮助你更多。


推荐阅读
  • Python正则表达式学习记录及常用方法
    本文记录了学习Python正则表达式的过程,介绍了re模块的常用方法re.search,并解释了rawstring的作用。正则表达式是一种方便检查字符串匹配模式的工具,通过本文的学习可以掌握Python中使用正则表达式的基本方法。 ... [详细]
  • VScode格式化文档换行或不换行的设置方法
    本文介绍了在VScode中设置格式化文档换行或不换行的方法,包括使用插件和修改settings.json文件的内容。详细步骤为:找到settings.json文件,将其中的代码替换为指定的代码。 ... [详细]
  • CF:3D City Model(小思维)问题解析和代码实现
    本文通过解析CF:3D City Model问题,介绍了问题的背景和要求,并给出了相应的代码实现。该问题涉及到在一个矩形的网格上建造城市的情景,每个网格单元可以作为建筑的基础,建筑由多个立方体叠加而成。文章详细讲解了问题的解决思路,并给出了相应的代码实现供读者参考。 ... [详细]
  • 向QTextEdit拖放文件的方法及实现步骤
    本文介绍了在使用QTextEdit时如何实现拖放文件的功能,包括相关的方法和实现步骤。通过重写dragEnterEvent和dropEvent函数,并结合QMimeData和QUrl等类,可以轻松实现向QTextEdit拖放文件的功能。详细的代码实现和说明可以参考本文提供的示例代码。 ... [详细]
  • 本文介绍了一种划分和计数油田地块的方法。根据给定的条件,通过遍历和DFS算法,将符合条件的地块标记为不符合条件的地块,并进行计数。同时,还介绍了如何判断点是否在给定范围内的方法。 ... [详细]
  • 本文介绍了解决二叉树层序创建问题的方法。通过使用队列结构体和二叉树结构体,实现了入队和出队操作,并提供了判断队列是否为空的函数。详细介绍了解决该问题的步骤和流程。 ... [详细]
  • 本文介绍了游标的使用方法,并以一个水果供应商数据库为例进行了说明。首先创建了一个名为fruits的表,包含了水果的id、供应商id、名称和价格等字段。然后使用游标查询了水果的名称和价格,并将结果输出。最后对游标进行了关闭操作。通过本文可以了解到游标在数据库操作中的应用。 ... [详细]
  • 本文介绍了PE文件结构中的导出表的解析方法,包括获取区段头表、遍历查找所在的区段等步骤。通过该方法可以准确地解析PE文件中的导出表信息。 ... [详细]
  • 成功安装Sabayon Linux在thinkpad X60上的经验分享
    本文分享了作者在国庆期间在thinkpad X60上成功安装Sabayon Linux的经验。通过修改CHOST和执行emerge命令,作者顺利完成了安装过程。Sabayon Linux是一个基于Gentoo Linux的发行版,可以将电脑快速转变为一个功能强大的系统。除了作为一个live DVD使用外,Sabayon Linux还可以被安装在硬盘上,方便用户使用。 ... [详细]
  • ALTERTABLE通过更改、添加、除去列和约束,或者通过启用或禁用约束和触发器来更改表的定义。语法ALTERTABLEtable{[ALTERCOLUMNcolu ... [详细]
  • 本文介绍了[从头学数学]中第101节关于比例的相关问题的研究和修炼过程。主要内容包括[机器小伟]和[工程师阿伟]一起研究比例的相关问题,并给出了一个求比例的函数scale的实现。 ... [详细]
  • 本文介绍了九度OnlineJudge中的1002题目“Grading”的解决方法。该题目要求设计一个公平的评分过程,将每个考题分配给3个独立的专家,如果他们的评分不一致,则需要请一位裁判做出最终决定。文章详细描述了评分规则,并给出了解决该问题的程序。 ... [详细]
  • 自动轮播,反转播放的ViewPagerAdapter的使用方法和效果展示
    本文介绍了如何使用自动轮播、反转播放的ViewPagerAdapter,并展示了其效果。该ViewPagerAdapter支持无限循环、触摸暂停、切换缩放等功能。同时提供了使用GIF.gif的示例和github地址。通过LoopFragmentPagerAdapter类的getActualCount、getActualItem和getActualPagerTitle方法可以实现自定义的循环效果和标题展示。 ... [详细]
  • 本文详细介绍了Spring的JdbcTemplate的使用方法,包括执行存储过程、存储函数的call()方法,执行任何SQL语句的execute()方法,单个更新和批量更新的update()和batchUpdate()方法,以及单查和列表查询的query()和queryForXXX()方法。提供了经过测试的API供使用。 ... [详细]
  • 本文详细介绍了Java中vector的使用方法和相关知识,包括vector类的功能、构造方法和使用注意事项。通过使用vector类,可以方便地实现动态数组的功能,并且可以随意插入不同类型的对象,进行查找、插入和删除操作。这篇文章对于需要频繁进行查找、插入和删除操作的情况下,使用vector类是一个很好的选择。 ... [详细]
author-avatar
sean
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有