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

动态内存分配头文件(c动态内存分配)

  • 内存
  • 2024-06-07 13:37:33
  • 3515

一、c语言malloc函数首先需要明确指针的概念:很明确的定义就是存储地址的变量。请注意,该定义没有强加任何其他约束。
用malloc分配空间,就是系统根据你的程序在内存栈中给你分配一段内存,并将该段内存的首地址分配给你的p。这是一个基本的指针概念。为什么我们要强调这一点呢?请继续关注这个过程。malloc对p所做的操作只是一个赋值操作。另外,malloc和p没有关系。他们是独立的。这就是真实的情况。并不是说malloc给p分配空间。你的说法是错误的。是的,正确的说法是malloc分配一块内存空间,并通过p使用这块内存。p只是一个用户,而不是内存的所有者。
例如,如果你的空间是10字节,这意味着你得到的是10字节空间的地址。你有一块可以合法使用的内存空间。请注意,它是合法使用的。
而且p可以任意偏移,分配的内存段可以很方便的分配,比如*(p+11),可以打印这个值,有一个随机数,也就是说可以任意移动p,但这是非法的,因为你偏离了分配给你的合法空间。


二、c语言中什么是动态分配内存?即在程序中使用数组或指针变量时,为了合理利用内存空间进行程序执行,会自动开辟内存空间来存放堆栈区域,最后内存空间耗尽再回收。方式。动态内存分配不像静态内存分配方法那样需要预先分配存储空间,而是由系统根据程序的需要进行分配。
C语言中通常使用malloc和free方法。
头文件是malloc.h或stdlib.h,