转自:https://www.bilibili.com/video/BV1Vk4y1z7sA?from=search&seid=14825244506879083081

动态存储区称为栈;静态存储区称为堆。
对内存的动态分配是通过系统提供的库函数实现的,主要有:malloc(分配),calloc,free(释放),realloc(重复加载)四个函数。
void *malloc(unsigned int size); //在内存的动态存储区分配一个长度为size的连续空间。形参size类型定义为无符号整型(不允许位负数),此函数是一个指针型函数,返回的指针指向该分配域的开头位置,链表的内容:
[in LinkList.h]
typedef struct Node {
ElemType data; //数据栈
struct Node *next; //指针域
}LNode,*LinkList; //LinkList为结构体指针类型
//单链表的初始化
[in LinkList.h]
void InitList_L(LinkList &L)
{
L= (LNode *)malloc(sizeof(LNode));//申请存放一个结点数据所需要的内存空间
if(!L) exit(1); //存储分配失效
L->next = NULL; //表头结点的指针域置空
} //InitList_L
void * calloc(unsigned n,usigned size) 不要求
void free(void *p);
void *realloc(void *p,unsigned int size);
四个函数均存在"stdlib.h"内,(标准库函数)
int *pt;
pt = (int*) malloc(100); //调用,将指向字符数据的指针转换为指向整形数据的指针
2.void指针类型
void不是指向任何的类型的数据,指向空类型或不指向确定的类型的数据。赋值给另一个指针变量时由系统对他进行类型转换。




被折叠的 条评论
为什么被折叠?



