malloc与内存
所有程序都需要预留足够的内存来存储程序使用的数据,malloc函数能够在程序运行时分配更多的内存。malloc函数会找到空闲的内存块并返回内存块的首地址,而恰好char表示1字节,malloc()的返回类型被定义为指向char类型的指针。但从ANSI C标准开始,有了些变化。malloc函数原型为:
void *malloc(unsigned int num_bytes);
一个指向void的指针,相当于是一个通用类型,所以通常我们需要什么类型的指针对应进行强制转换即可,分配失败将返回空指针。
为什么需要malloc?
以往我们在学习c语言时,通常只是简单的使用int,float之类来声明变量。像这种变量,通常存放在栈区(stack),由编译器自动分配释放,存放函数的参数值,局部变量等值。而在实际编程中,我们需要足够的内存来保证程序的存储需求,由于stack区内存相对较小,所以我们需要使用malloc与free等函数来从堆区(heap)动态申请与释放内存,堆区要比栈区大得多。
版权声明:自由转载-非商用-非衍生-保持署名(创意共享3.0许可证)
作者: Austin 发表日期:2021-03-21 22:10
哥,能深入一点吗
以后再深入点吧,哈哈
能深入,但是只能深入一点点