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

c语言申请内存空间是怎么实现的

  • 内存
  • 2024-05-29 12:35:56
  • 4423

一、malloc函数内存什么地方申请空间内存分为堆区、栈区、静态区和代码区。全局变量和静态变量存储在静态区中,局部变量存在于堆栈区中,动态应用的变量(即new和malloc函数应用的变量)存储在堆区中。


二、关于C语言中指针申请内存问题如果你这样想,说明你并没有真正理解内存和指针。因塔;意思是编译器随机取出一个空闲地址,分配给a。可以设置为00000000,长度为sizeof(int)。不同的编译器可能会有所不同。整数*p;也意味着随机取出一个空闲地址分配给p。您不妨将其设置为000000f0。长度一般为4个字节。那么这四个字节当前存储的内容是不确定的。假设为00000ff0,则*p表示地址00000ff0处的值。*p=a将地址00000ff0的值更改为a的值。显然,如果该地址当前正在被某个进程使用,则可能会破坏该进程,所以这种方法是非常危险的。通常有两种方法为指针赋值。一种是将现有变量的地址传递给指针,格式为:p=&a;另一种是先申请指针指向的合法内存。在C语言中,使用函数malloc(),然后给申请的地址赋值,如*p=6。