很多up主在教学时都没有阐述的很清楚,其实就几大件
一,要知道为什么要使用这几个函数,为什么不在栈上开辟内存空间
我认为核心的原因是使用方便,首先栈上创建的变量是不能够在函数间互相传递的,虽然可以通过extern,static等关键字修饰来达到目的,但是总归操作起来不是很方便,而且感觉比较乱!
二,核心区别
malloc不能初始化
calloc开辟之初,初始化内存,相对安全系数较高
realloc可以在原地址的后续物理空间不足以开辟新的空间的情况下,可以拷贝当前地址的内容并寻找一块新的空间开辟(如果ptr是NULL,这个函数可以和malloc作用一样。如果能有realloc功能就好了,把新开辟的空间初始化)