C语言动态内存分配哦

转自: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不是指向任何的类型的数据,指向空类型或不指向确定的类型的数据。赋值给另一个指针变量时由系统对他进行类型转换。

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值