C程序申请动态结构体数组,怎么做?

如题,谢谢。

第1个回答  推荐于2018-04-12
struct A
{
int a;
int b;
};
struct A *pA = NULL;
pA = (struct A *)malloc(sizeof(struct A)*N);
N为结构体个数
用完记得用free(pA)施放内存。本回答被提问者和网友采纳
第2个回答  2011-05-25
假如有个student结构体,则
student a=new student[n]();就可以了 想申请多少就多少
第3个回答  2011-05-25
struct yourtype
{
};
yourtype *ptype =(yourtype *) malloc(yourtype);

结构体申请动态空间的问题
(C语言中)如果要申请已知长度的结构体数组的话,如长度为10,则 customer *p;p=(customer *)malloc(10,sizeof(customer));……free(p);如果结构体长度不定,个人认为需要通过链表方式实现。

C语言实现简单动态数组
本文将用C语言实现一个支持存储int类型数据的简单动态数组。你只需要了解简单的结构体和指针使用,再加上一些耐心,就能构建出一个性能一般、功能不完善但可运行的动态数组。在动态数组中,数组结构通过结构体定义。它包括三个属性:count、capacity和nums。count表示当前数组元素个数,capacity表示数组总容量...

如何定义一个动态的对象数组?
如果是C的话,定义一个数组的结构体,结构体内部初始化一个数组,假设初始大小为100,再写add()函数,用add()添加元素,再写函数检查当添加到大于初始容量时,初始化一个原SIZE*2的数组,把原数组的元素copy到新数组中。如果是Java之类的话,ArrayList list=new ArrayList();...

c语言编程:建立一个结构体数组?
一、要定义两个结构体,一个是日期年月日,一个是员工。二、程序包含三个功能:1、结构数组的输入。2、结构数组的输出。3、统计平均工资。根据编程习惯,三功能要写成独立函数,方便扩展和调用。ps:员工数量定义成常量,也为编程习惯,便于修改。另外,日期验证我只写了月份检测给你参考。需扩展,自行...

C++怎么在结构体里定义动态数组
可以在结构体中添加指针类成员变量,并在成员函数中实现动态数组的分配。以下以一个仅实现整型动态数组,不包含其它功能的类为例做说明。class array \/\/类名{ public: int *v; \/\/动态数组首地址。 int length; \/\/动态数组长度。 array(int len) { if(len <= 0)\/\/初始化长...

C语言结构体数组的定义
结构体可以存储不同的数据类型,将他们互相联系起来。结构体数组可以连续存储多个结构体,和数组作用相似。比如想定义同一个最小外接矩形的四个坐标值,并给予这个矩形一个特征编号。当需要存储多个最小外接矩形的信息时,就需要动态申请一个结构体数组。struct 结构体类型名{类型名 成员名;类型名 成员...

c语言结构体数组的输入输出
比如一个班的学生、一个车间的职工等。在C语言中,定义结构体数组和定义结构体变量的方式类似;例:struct stu{ char*name;\/\/姓名 int num;\/\/学号 int age;\/\/年龄 char group;\/\/所在小组 float score;\/\/成绩 }class[5];表示一个班级有5个学生。

关于C语言的结构体,有没有办法能够释放单个结构体的空间?
这要看你是如何申请的结构体空间,如果是用malloc方式申请的,用指针进行管理,直接free该指针即可。如果是用局部数组方式申请的应该结构体数组,无法单独释放其中一个元素的空间,需要该函数结束时,整个结构体数组自动释放。如果是全局数组,同样无法单独释放其中一个元素的空间,整个程序停止的时候,整个结构...

C语言中结构体数组的大小如何动态分配?
结构体类型数据组就和我们平常定义的基本类型的数组一样,只不过是类型变了。\\x0d\\x0a基本类型数组动态分配大小:\\x0d\\x0aint*a=(int*)malloc(sizeof(int)*10);\/\/动态分配10个大小的int类型的内存空间\\x0d\\x0a结构体类型数组分配大小:\\x0d\\x0astructDIYDEFINE\\x0d\\x0a{\\x0d\\x0a...

c语言结构体数组,创建结构体,并编写程序,输出分数最低的学生的学号...
int main(){struct stu {int id;char name[21];int score;}st[100];int n,i,min=99999,mini;scanf("%d",&n);for(i=0;i<n;i++){scanf("%d %s %d",&st[i].id,st[i].name,&st[i].score);if(st[i].score<min){min=st[i].score;mini=i;} } printf("分数最低是: %d...

相似回答