C语言难点4之动态内存分配
之前有半个多月没有更新,其实早就写好了,由于之前比较忙,并没有上传,接下来会恢复更新,把一些以前的东西上唇上来,自己也顺道复习一下,废话不说了,这一部分讲的是C语言中很常见的动态内存的分配问题
主要有下面的几点,一起学习啊!
1 内存在编译的时候被分配,如果给定一个较大的内存就会浪费内存,但是如果给定较小,会可能会内存溢出,所以需要动态分配内存;
动态分配和释放内存主要用到两个函数malloc和free函数
注意到,malloc分配的是一块连续的内存;
free的参数必须要么是NULL,要么是一个先前从malloc ,alloc或realloc返回的值。
2 calloc和ralloc函数
部的部分内存便被拿掉,剩余部分内存的原先内容依然保存。
3 测试是否成功分配内存
4 内存的访问
访问分两种,一种是以数组的形式访问,一种是以指针的形式访问
5 常见的动态内存错误
常见的错误有对NULL指针进行解引用操作,对分配的内存进行操作时候越过边界,释放并非动态分配的内存,试图释放一块动态分配的内存的一部分,以及一块动态内存被释放后被继续使用。
最常见的错误就是忘记检查所请求的内存是否分配成功
6 内存的释放
还有两个博客有关C语言的难点就讲完了,实际上还是需要多多的练习,最好在大一点的项目中学会使用,会体会的更加的深刻。