C语言难点4之动态内存分配

C语言难点4之动态内存分配

  之前有半个多月没有更新,其实早就写好了,由于之前比较忙,并没有上传,接下来会恢复更新,把一些以前的东西上唇上来,自己也顺道复习一下,废话不说了,这一部分讲的是C语言中很常见的动态内存的分配问题

主要有下面的几点,一起学习啊!

 

1  内存在编译的时候被分配,如果给定一个较大的内存就会浪费内存,但是如果给定较小,会可能会内存溢出,所以需要动态分配内存;

动态分配和释放内存主要用到两个函数malloc和free函数

注意到,malloc分配的是一块连续的内存;
free的参数必须要么是NULL,要么是一个先前从malloc ,alloc或realloc返回的值。
 2 calloc和ralloc函数
 

部的部分内存便被拿掉,剩余部分内存的原先内容依然保存。

3 测试是否成功分配内存

4 内存的访问
访问分两种,一种是以数组的形式访问,一种是以指针的形式访问
5 常见的动态内存错误
常见的错误有对NULL指针进行解引用操作,对分配的内存进行操作时候越过边界,释放并非动态分配的内存,试图释放一块动态分配的内存的一部分,以及一块动态内存被释放后被继续使用。
 
最常见的错误就是忘记检查所请求的内存是否分配成功

 6 内存的释放

 

 还有两个博客有关C语言的难点就讲完了,实际上还是需要多多的练习,最好在大一点的项目中学会使用,会体会的更加的深刻。

原文地址:https://www.cnblogs.com/tao-alex/p/6085707.html