149

问答题 149 /413

请你说一下C语言的内存分配

参考答案

参考回答:

在C语言中,对象可以使用静态或动态的方式分配内存空间

静态分配:编译器在处理程序源代码时分配,由于是在程序执行之前进行所以效率比较高

动态分配:程序在执行时调用malloc库函数申请分配,可以灵活的处理未知数目的对象

静态与动态内存分配的主要区别如下:

静态对象是有名字的变量,可以直接对其进行操作;动态对象是没有名字的变量,需要通过指针间接地对它进行操作。

静态对象的分配与释放由编译器自动处理;动态对象的分配与释放必须由程序员显式地管理,它通过malloc()和free两个函数(C++中为new和delete运算符)来完成。