首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >指针异常如何解决?

指针异常如何解决?

提问于 2022-10-12 03:06:33
回答 0关注 0查看 83
代码语言:c
复制
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<string.h>
#include<stdlib.h>

//结构体嵌套二级指针练习
//结构体设计
struct TeaCher {
	//老师姓名
	char *name;

	//老师带的学生姓名数组
	char **Studets;



};

void allocateSpace(struct TeaCher ***teacherArray) {
	
	if (teacherArray == NULL)
	{
		return;
	}
	//堆区分配内存
 	struct TeaCher ** ts = malloc(sizeof(struct TeaCher *) * 3);
	//数据赋值
	
	for (int i = 0; i < 3; i++)
	{
		ts[i] = malloc(sizeof(struct TeaCher));//给老师分配内存

		ts[i]->name = malloc(sizeof(char) * 64);//给老师姓名属性分配内存
		sprintf(ts[i]->name, "TeaCher_%d", i + 1);//给老师姓名赋值
	  //给老师带领学生数组分配内存
		ts[i]->name = malloc(sizeof(char *)* 4);
		//给学生姓名赋值

		for (int j = 0; j < 4; j++)
		{
			ts[i]->Studets[j] = (char)malloc(sizeof(char)* 64);

			sprintf(ts[i]->Studets[j], "%s_studet_%d", ts[i]->name, j + 1);
		}
	
	}


	//建立关系
	*teacherArray = ts;

}

//打印操作
void printTeacharArray(struct TeaCher ** teacherArray) {

	for (int i = 0; i < 3; i++)
	{
		printf("%s\n", teacherArray[i]->name);//老师姓名
		for (int j = 0; j < 4; j++)
		{
			printf("   %s\n",teacherArray[i]->Studets[j]);
		}

	}

}

void test01() {
	//老师数组创建
	struct TeaCher ** teacherArray = NULL;

	//分配内存
	allocateSpace(&teacherArray);
	
	//打印所有老师和学生的信息
	printTeacharArray(teacherArray);

}


int main() {

	test01();

	system("pause");
	return EXIT_SUCCESS;
}

回答

和开发者交流更多问题细节吧,去 写回答
相关文章

相似问题

相关问答用户
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档