C语言-动态内存管理

目录

C语言-动态内存管理

相关库函数

内存耗尽

野指针

野指针产生原因:

动态内存分配应用经验


C语言-动态内存管理

动态内存管理,就是程序执行的过程中,由程序编写者动态的申请和回收内存空间。

C语言内存的动态分配一般通过库函数实现,主要有malloc和free函数。位置:在堆上。

连接:https://blog.csdn.net/USA_AM_1966/article/details/89509589

相关库函数

1.malloc函数

函数声明:

void *malloc(unsigned int size);

功能说明:分配size字节的连续空间,返回值分配空间起始地址;

内存空间不足,返回空(NULL,即0)。

用法:

int *p = malloc(sizeof(int));

2.free函数

函数声明:

void free(void *p);

功能说明:释放动态开辟的空间,无返回值。

用法:

free(p);

内存耗尽

使用动态内存分配,必须及时释放内存,否则可能会引起内存耗尽,程序崩溃。

(编程人员崩溃【找不到bug】,产品经理崩溃【规定时间内,功能没有实现】,项目组崩溃【由于项目逾期,年终奖没了,绩效奖金没了】,公司崩溃【项目没有按时交付,信誉受损】,行业崩溃【没有优秀的产品,只能选择备选,长期以往,行业出现大量问题需要解决,发展停滞不前】,相关产业链崩溃【相关产业因为供应链不均衡,出现木桶效应】,国家崩溃【多个产业受到波及,经济发展受到严重影响】--蝴蝶效应

野指针

无效的指针。

野指针产生原因:

1.指针变量未初始化。

指针变量创建时被初始化,设置为NULL或者让它指向合法内存。

2.指针释放后未置空

释放指针后,应该立即将指针置为NULL。

用例:

free(p);

p = NULL;

动态内存分配应用经验

1.数组

C语言的早期标准中,定义数组必须用常量大小,不能用变量。

用法:

char str[101];

现在定义数组可以用变量指明大小。

用法:

if(in_string == 0)

 return;

if(strlen(in_string) == 0)

char strTemp[strlen(in_string)+1] ;

C++的string是一个字符串,非常好用。

2.链表

C语言经典数据结构,相当于一个动态的数据体结构,结构巧妙,功能强大。

3.建议

中国几乎没有纯C语言程序员,除了嵌入式开发,以C语言为基础学习其他编程语言,如

第一级Java,Python,C++;

第二级C#,Visual Baisic,JavaScript,PHP,SQL;

第三级R,Swift,Go,MATLAB,Assmbly language,Ruby,PL/SQL.

第四级......

谢谢阅读,欢迎补充。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值