c语言|C语言精华——内存管理,很多学校学习不到的知识~( 二 )



在C++中出现内存泄露的主要原因就是程序猿在申请了内存后(malloc() new) , 没有及时释放没用的内存空间 , 甚至消灭了指针导致该区域内存空间根本无法释放 。

知道了出现内存泄露的原因就能知道如何应对内存泄露 , 即:不用了的内存空间记得释放!

内存泄漏可能会导致严重的后果:
●  程序运行后 , 随着时间占用了更多的内存 , 最后无内存可用而崩溃;
●  程序消耗了大量的内存 , 导致其他程序无法正常使用;
●  程序消耗了大量内存 , 导致消费者选用了别人的程序而不是你的;
●  经常做出内存泄露bug的程序猿被公司开出而贫困潦倒 。
如何检测内存泄露
观察内存泄露是一个两步骤的过程 。 首先 , 使用swap命令观察还有多少可用的交换空间:
/usr/sbin/swap -s
total:17228K bytes allocated + 5396K reserved=22626K used , 29548K available.
在一两分钟内键入该命令三到四次 , 看看可用的交换区是否在减少 。 还可以使用其他一些/usr/bin/*stat工具如netstat、vmstat等 。 如发现波段有内存被分配且从不释放 , 一个可能的解释就是有个进程出现了内存泄露 。
7、内存操作函数#include <string.h>
memcpy()
memmove()
memchr()
memset()
//-----------
int arr[10
= { 1 2 3 4 5 6 7 8 9 10 ;
int arr1[10
;
//memcpy(arr1arrsizeof(arr));
memset(arr1040);
for (int i = 0; i < 10;i++)
{
printf(\"%d\\"arr1[i
);
【c语言|C语言精华——内存管理,很多学校学习不到的知识~】