欢迎来到飞鸟慕鱼博客,开始您的技术之旅!
当前位置: 首页知识笔记正文

变量的内存分配

墨初 知识笔记 103阅读

内存分配的类型有哪些?

答:1,内存分配的类型: 在C/C++中内存分为5个区,分别为 栈区、堆区、全局/静态存储区、常量存储区、代码区。

静态内存分配和动态内存分配有什么区别?

答:静态内存分配: 编译时分配。 包括:全局、静态全局、静态局部三种变量。 动态内存分配: 运行时分配。 包括:栈 (stack): 局部变量。 堆 (heap): c语言中用到的变量被动态的分配在内存中。 (malloc或calloc、realloc、free函数) 栈区(stack): 指那些由编译器在需要的时候分配,不需要时自动清除的变量所在的储存区,如函数执行时,函数的形参以及函数内的局部变量分配在栈区,函数运行结束后,形参和局部变量去栈(自动释放)。

堆上分配的内存是怎么分配的?

答:栈上分配的内存是由系统分配和释放的,空间有限,在复合语句或函数运行结束后就会被系统自动释放。 而堆上分配的内存是由程序员通过编程自己手动分配和释放的,空间很大,存储自由。 堆和栈后面还会专门讲,这里先了解一下。

c语言中用到的变量被动态分配在内存中吗?

答:堆 (heap): c语言中用到的变量被动态的分配在内存中。 (malloc或calloc、realloc、free函数) 栈区(stack): 指那些由编译器在需要的时候分配,不需要时自动清除的变量所在的储存区,如函数执行时,函数的形参以及函数内的局部变量分配在栈区,函数运行结束后,形参和局部变量去栈(自动释放)。

声明:无特别说明,转载请标明本文来源!