二维数组

南笙酒味 提交于 2019-12-12 21:12:10
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <string.h>

typedef struct _Ateacher {
	int id;
	char *name;
	char **stu;
}Teacher_t;

Teacher_t *createTeacher(int n)
{
	int i = 0, j = 0;
	Teacher_t *st = NULL;
	
	st = (Teacher_t *)malloc(n*sizeof(Teacher_t));
	for (i = 0; i < n; i++)
	{
		st[i].name = (char *)malloc(100);
		
		st[i].stu = (char **) malloc(sizeof(char *));
		for (j = 0; j < n; j++)
		{
			st[i].stu[j] = (char *)malloc(100);
		}
	}
	
	return st;
}

void printst(Teacher_t *st)
{
	int i = 0, j = 0;
	
	for( i = 0; i < 3; i++)
	{
		printf("Tname: %s, Tid: %d \t ->>> stu info", st[i].name, st[i].id);
	
		for ( j = 0; j < 3; j ++)
		{
			printf("\tSname%d: %s", j, st[i].stu[j]);
		}
		printf("\n");
	}
}

int main()
{
	Teacher_t *st = NULL;
	int i = 0, j = 0;

	st = createTeacher(3);
	for( i = 0; i < 3; i++)
	{
		st[i].id = i;
		printf("input name [%d]: ", sizeof(st[i].name));
		scanf("%s", st[i].name);
		
		printf("input stu info\n");
		for ( j = 0; j < 3; j ++)
		{
			printf("\t[%d]input name%d: ",  sizeof(st[i].stu[j]), j);
			scanf("%s", st[i].stu[j]);
		}
	}
	printst(st);
	
	return 0;
}

  

二维指针及结构体使用

 

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!