700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > C 结构体嵌套一级指针 二级指针 动态分配内存

C 结构体嵌套一级指针 二级指针 动态分配内存

时间:2024-06-13 04:33:11

相关推荐

C 结构体嵌套一级指针 二级指针 动态分配内存

/xielinhua88/article/details/51364623

点击打开链接#define _CRT_SECURE_NO_WARNINGS#include <stdlib.h>#include <string.h>#include <stdio.h>//结构体嵌套一级指针 二级指针 动态分配内存typedef struct _Teacher {int age;int id;char *title;char **pStuarray;char name[64];}Teacher;//打印结构体void printfTeacher(Teacher *array,int num) {int i = 0;for ( i = 0; i < num; i++){printf("%d\n", array[i].age);printf("%s\n",array[i].pStuarray[i]);}}//给结构体分配内存Teacher* createTarray(int num) {int i = 0,j=0;Teacher* teacher;teacher = (Teacher*)malloc(sizeof(Teacher)*num);if (teacher!=NULL){for ( i = 0; i < num; i++){teacher[i].title = (char*)malloc(sizeof(char)*100);//结构体Teacher title分配内存char** ptmp = (char**)malloc(sizeof(char*)*num);//for ( j = 0; j < num; j++){ptmp[i] = (char*)malloc(100);//}teacher[i].pStuarray = ptmp;}}return teacher;}//释放内存void freeTeacher(Teacher* arrayT,int num) {int i = 0,j=0;if (arrayT!=NULL){for (i = 0; i < num;i++) {if (arrayT[i].title != NULL) {free(arrayT[i].title);}if (arrayT[i].pStuarray!=NULL){for (j = 0; j < num; j++){free(arrayT[i].pStuarray[j]);}}free(arrayT[i].pStuarray);}free(arrayT);}}void main() {int i = 0,j=0;Teacher *pArray=NULL;int num = 1;pArray = createTarray(num);for (i = 0; i < num; i++){printf(" %d---age?\n", i + 1);scanf("%d", &pArray[i].age);printf(" %d---title?\n", i + 1);scanf("%s", pArray[i].title);printf(" %d---name?\n", i + 1);scanf("%s", pArray[i].name);for (j = 0; j < num; j++){printf(" ---student----%d\n",i+1);scanf("%s", pArray[i].pStuarray[j]);}}printfTeacher(pArray,num);freeTeacher(pArray, num);system("pause");}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。