数据结构-数组实现-初始化

数据结构-数组实现-初始化数组是一类数据的集合,利用数组可以实现数据的存储,但如何实现数组?一、利用结构体定义数据类型数组是一种数据结构,需要利用结构体定义数据的类型,对

欢迎大家来到IT世界,在知识的湖畔探索吧!

数组是一类数据的集合,利用数组可以实现数据的存储,但如何实现数组

一、利用结构体定义数据类型

数组是一种数据结构,需要利用结构体定义数据的类型,对于一个数组,需要知道数组的首元素的地址、数组长度、数组中的有效个数

struct Arr{
	int *pBase;//存储数组第一个元素的地址
	int len;//存储数组最大元素个数
	int cnt;//当前数组有效元素个数
};

欢迎大家来到IT世界,在知识的湖畔探索吧!

二、数组初始化函数声明

定义结构体struct Arr,进行结构体变量声明

struct Arr arr;

在这个过程中,声明的结构体变量arr中的3个成员pBase、len、cnt存储的是内存中的垃圾值,需要对其进行初始化,定义初始化函数init_arr()。

需要考虑几个问题

(1)返回值。对于初始化,仅需要将结构体中各参数初始化不需要返回值,因此是void

(2)参数。初始化函数中需要传入的参数。

首先考虑,如果传入的是结构体变量,相当于是将声明的结构体变量赋值给初始化函数,并不能修改主函数中结构体变量的各个成员的值,不能达到初始化的效果,因此需要传入的是结构体指针变量

然后考虑,数组中的成员并不是不变的,因此初始化中可以传入数组的长度

所以初始化的函数声明如下:

欢迎大家来到IT世界,在知识的湖畔探索吧!void init_arr(struct *pArr, int length);

三、数组初始化函数定义

函数定义是指函数需要实现的功能。数组初始化函数对数组分配内存、初始化数组长度以及初始化数组有效元素个数。

为数组分配内存,使用malloc()函数

pArr->pBase = (int *)malloc(sizeof(length) * length);

初始化数组的长度

欢迎大家来到IT世界,在知识的湖畔探索吧!pArr->len = length;

初始化数组有效个数

pArr->cnt = 0;

但在初始化过程中有可能出现内存分配失败的情况,因此采用if语句进行判断,判断malloc()函数返回值是否为空,具体代码如下

void init_arr(struct Arr *pArr, int length){
	//为数组动态分配内存
	pArr->pBase = (int *)malloc(sizeof(length) * length);
	//返回空指针,结束函数
	if(NULL == pArr->pBase){
		printf("动态内存分配失败");
		exit(-1);
	}
	else{
		pArr->len = length;
		pArr->cnt = 0;
	}
	return;
}

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://itzsg.com/37802.html

(0)

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们YX

mu99908888

在线咨询: 微信交谈

邮件:itzsgw@126.com

工作时间:时刻准备着!

关注微信