数据结构—顺序表的初始化


#include <stdio.h>
#include <stdlib.h>
#define OK 1
#define OVERFLOW -2
#define MAXSIZE 100
#define LIST_INIT_SIZE 10// 线性表存储空间的初始分配量
typedef int Status; //Status是函数数据类型 ,其值是函数结果状态,如OK
typedef int ElemType;//ElemType是线性表中数据元素类型
typedef struct{
ElemType *elem;
int length;
int listsize;
}Sqlist;
Status InitList(Sqlist &L)
{//构造一个空的顺序表
// L.elem=new ElemType[MAXSIZE];//为顺序表分配一个预定义大小为MAXSIZE的数组空间[或者L.elem=(ElemType*)malloc(LIST_INIT_SIZE*sizeof(ElemType));]
L.elem=(ElemType*)malloc(LIST_INIT_SIZE*sizeof(ElemType));//L.elem这个指针指向一块通过malloc函数分配的内存的地址这个内存的大小为Elemtype这个结构体的size*LIST_INIT_SIZE的乘积这么大
//malloc 是用于分配指定size的内存的库函数
if(!L.elem)exit(OVERFLOW);//存储分配失败退出
L.length=0;//空表长度为0
L.listsize=LIST_INIT_SIZE; // 初始存储容量
return OK;
}
int main(){
Sqlist L;
InitList(L);
printf("初始化L后:L.elem=%u L.length=%d L.listsize=%d\n",L.elem,L.length,L.listsize);
}


1.stdlib.h中,包含了C语言的一些常用库函数。如
动态内存相关的malloc, realloc,zalloc,calloc,free等。
随机数相关的rand,srand等。
系统相关的system, getenv,setenv等。
字符串转数值函数,atoi, atof,strtoul等。
如果在代码中,调用了这个头文件中的函数或者宏定义,则需要引用该头文件。
2. exit用于在程序运行的过程中随时结束程序,exit的参数是返回给OS的。而return是返回函数值并退出函数。exit是系统级别的,return是语言级别的。
3. malloc的全称是memory allocation,中文叫动态内存分配,用于申请一块连续的指定大小的内存块区域以void*类型返回分配的内存区域地址,当无法知道内存具体位置的时候,想要绑定真正的内存空间,就需要用到动态的分配内存。
用法:
头文件:
#include <stdlib.h>
或者
#include <malloc.h>

相关推荐
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页