C语言,指针数组的应用,malloc申请动态数组

指针数组的应用(malloc申请)

学习指针数组后结合题目写了一些代码,留下记录
需求描述:
要求先输入要几套方案,每套方案都有五种类型的卷子
再依次输出每套方案的配备
五个参数分别是 A B C D E类型的卷的数目
再对每个方案各类型卷子进行计算,计算出最后能组成多少种输出方案(因为忘记具体要求本代码中只是再输出了每套卷子方案的具体值)

思路逻辑,内存图解析
在这里插入图片描述
在这里插入图片描述

代码实现

//头文件引用
#include<stdio.h>
#include<stdlib.h>
#include<malloc.h>

//需求要求先输入要几套方案
//再依次输出每套方案的配备 五个参数分别是 A B C D E类型的卷
int main(void)
{
	int numbers;
	printf("请输入你想要创建几套方案\n");
	//先输入要几套方案
	scanf_s("%d", &numbers);
	printf("你需要的方案数量为%d\n下面请依次输入每个方案的卷子数目\n",numbers);
	//把每一套方案都存在一个数组中
	//先申请一个指针数组,数组中的每个值都是一个地址,地址的值指向我们新申明的一个数组中,数组中的数字为卷子数目
	int** method = (int**)malloc(sizeof(int*) * numbers);//method指向一个指针数组
	if (NULL == method)
	{
		return 0;
	}
	//分配method[]中的数组的指向
	for (size_t i = 0; i < numbers; i++)
	{
		int* temp = NULL;
		temp = (int*)malloc(5*sizeof(int) ); //使用临时指针去装一下新malloc的地址,其中的值是卷子数目
		if (NULL == temp)
		{
			return 0;
		}
		*(method + i) = temp; //再把这个地址装在指针数组中
	}



	for (size_t i = 0; i < numbers; i++)
	{
		printf("请输入第%d套的配置数目\n",i+1);
		for (size_t j = 0; j < 5; j++)
		{
			scanf_s("%d", *(method + i) + j );
	 	}
	}
	printf("============================\n");
	for (size_t i = 0; i < numbers; i++)
	{
		printf("\n第%d套的配置数目为\n",i+1);
		for (size_t j = 0; j < 5; j++)
		{
			printf("%d\t", *(*(method + i) + j));
		}
	}

	for (size_t i = 0; i < numbers; i++)
	{
		free(*(method + i));
	}//需要释放掉空间防止变为空间碎片
	free(method);
	system("pause");
	return 0;
}
  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值