简单来说,malloc函数的作用是开辟一个空间来给你使用;
他包含在标准库中
返回值是一个void*(可以简单理解为一个没人知道它是什么类型的指针),一般我们都要对结果进行类型转换;
我们通过malloc申请的空间是以字节为单位的,如malloc(1*1024*1024)则申请了1MB的空间;
如果申请失败了,如空间已满,则会返回0;
我们用一个简单的实例就能掌握malloc函数的用法
因为我们的a的类型是int*,而malloc返回的是void*,所以我们要通过(int*)来对malloc进行类型转换来得到我们需要的空间,可以是int也可以是double;
与malloc相对应的函数是free()
free的作用是将你用malloc函数开辟的空间释放,一般来说free函数是必须的,只要你用了malloc,就要free;
传入free的指针只能是你用malloc对应的那个指针,如果传入其他指针,是一定会报错的(0指针不会报错,因为free本质也是一个函数,它内部有一个检测程序);
但是我们平常写的小程序,我们不去free是没有影响的,因为程序在运行完后自动就将所有的空间全部释放了,但当我们在搞一个比较大的项目的时候,比如一个一直工作的服务器,这时候我们不去free,就会有很大的影响,程序一直运行,那malloc就会反复的开辟空间,直到空间被占满,然后就会报错中断程序。
所以养成free和malloc配套使用的习惯还是比较关键的
版权声明:
本文来源网络,所有图片文章版权属于原作者,如有侵权,联系删除。
本文网址:https://www.mushiming.com/mjsbk/1542.html