首页 > 代码库 > 结构体数组与用malloc申请结构体空间的对比
结构体数组与用malloc申请结构体空间的对比
结构体数组与用malloc申请结构体空间的对比
文章标题听起来很拗口,可能我描述的不太清楚,还是看例程吧:
我先写以前最早会用的malloc:
1 #include <stdio.h> 2 #include <stdlib.h> 3 #include <string.h> 4 5 struct student 6 { 7 char *name; 8 int age; 9 }; 10 11 int main() 12 { 13 struct student *p_student=NULL; 14 p_student=((struct student *)malloc(sizeof(struct student))); 15 16 p_student->name="Tom"; 17 p_student->age=23; 18 19 printf("name:%s\n",p_student->name); 20 printf("age:%d\n",p_student->age); 21 22 free(p_student);
23 p_student=NULL;//注意,释放掉了malloc空间,但结构体指针依然存在,仍需要指向NULL; 24 return 0; 25 }
上面程序简单明了,就是申请个结构体指针,然后开辟一段内存空间,准备存放“struct student”类型的变量数据,变量都初始化后,打印出来,最后释放malloc空间。
下面再来一个结构体数组:
1 #include <stdio.h> 2 #include <stdlib.h> 3 #include <string.h> 4 5 struct student 6 { 7 char *name; 8 int age; 9 }; 10 11 int main() 12 { 13 struct student p_student[sizeof(struct student)]={"Tom",23}; 14 15 printf("name:%s\n",p_student->name); 16 printf("age:%d\n",p_student->age); 17 return 0; 18 }
这是结构体数组,就是:“struct student”类型的数组“p_student”,空间大小为“sizeof(struct student)”,初始化时,直接在后面写上就行了。
通过上面两个例子,我发现第二种结构体数组好用些。
结构体数组与用malloc申请结构体空间的对比
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。