当前位置:首页 > 内存 > 正文

c语言内存划分

  • 内存
  • 2024-05-20 15:34:54
  • 3402

一、C语言中内存的分配方式有哪3种,用文字或表达式列出各自的一个例子(n*sizeof(int))/*请求n个连续的空格,每个空格的长度为整数。如果成功,将返回这些空间的首地址,否则0*/
c(p.,sizeof(int)*n)/*重新分配空间给已分配地址的指针。参数p为原始位置地址*/
3.


二、C语言中对一个定义一个变量就是为其在内存中分配一个空间,那个空间最开始从哪分配起?

C/C++编译后的程序所占用的内存分为以下几部分:

①栈区(stack)——程序运行时由程序自动分配的;存储函数参数的值、局部变量的值等。它的作用类似于数据结构中的堆栈。当程序完成时,它由编译器自动释放。

②堆区(heap):在内存中开辟另一个存储区域。一般来说,程序员会分配它,如果程序员不释放它。当程序完成时,操作系统可以重用它。这与数据结构中的堆不同;注意,分配方法类似于链表。

③全局区(静态区)(static):计算机编译时分配内存。全局变量和静态变量已初始化的全局变量和静态变量位于一个区域中,而未初始化的全局变量和未初始化的静态变量位于另一相邻区域中。-程序完成后由系统释放

④常量区:在此放置常量字符串。程序完成后由系统释放。

⑤程序代码区——存放函数体的二进制代码。