栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

c语言动态内存存储常见的错误和相应的习题解析

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

c语言动态内存存储常见的错误和相应的习题解析

一.动态内存存储常见的错误

1.对NULL指针的解引用操作

p是空指针,并没有指向的空间,却坚持给p赋值,那数值会存入哪里??这必然会出现一些问题。

2.对动态开辟空间的越界访问

3.对非动态开辟空间使用free释放

 非动态开辟空间指并不是通过malloc、calloc、realloc函数在堆区上开辟的空间。

4.使用free释放一块动态开辟内存的一部分

free()函数接受的是动态开辟空间的地址。

5. 对同一块动态内存多次释放

 上图第一次free函数,释放p所指向的空间,但是p指向空间的地址并不发生改变。free之后没有对p赋值NULL,p此时为野指针。再使用free函数接收p时,程序就会出现问题。

 free函数使用注意事项:a.非动态开辟空间不能使用free释放空间 

                                        b.free接受空指针时无事发生

6.动态开辟内存忘记释放(内存泄漏)

内存泄漏:是指由于程序员的疏忽导致动态开辟的空间没有释放,程序结束后,该内存空间没有还原给计算机,因此会导致计算机内存可用空间的减小。

以上是总结的六点写代码过程中易出现的关于动态开辟内存和释放的错误。大家在平时写代码时一定要细心细心再细心。当然偶尔出现错误也是很正常,正所谓人无完人嘛。

二.有关动态开辟内存空间的笔试题解析

1.

 

改正:

 

2.

 

改正后:

 

3.

 

 

 改正:

 

4.

 改正:

 

 

5.

 

改正:

 

 

6.

 

改正: 

 

三.c程序在内存中的开辟

 

 

 

暑期编程PK赛 得CSDN机械键盘等精美礼品!
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1015163.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号