C语言中比较重要的就是指针,它可以用来链表操作,谈到链表,很多时候为此分配内存采用动态分配而不是静态分配。
本文分享自华为云社区《 【云驻共创】C语言中动态内存分配的本质 》,作者: G-washington
C语言是一门面向过程的、抽象化的通用程序设计语言,广泛应用于底层开发。尽管C语言提供了许多低级处理的功能,但仍然保持着跨平台的特性,因为C语言具有可移植性,可拓展性,可重用性等特性,促使C语言仍然在编程语言排行榜上占据一定有利地位。而C语言中比较重要的就是指针,它可以用来链表操作,谈到链表,很多时候为此分配内存采用动态分配而不是静态分配。
内存分配的概念
通常定义变量(或对象),编译器在编译时都可以根据该变量(或对象)的类型知道所需内存空间的大小,从而系统在适当的时候为他们分配确定的存储空间。这种内存分配称为静态存储分配;有些操作对象只在程序运行时才能确定,这样编译时就无法为他们预定存储空间,只能在程序运行时,系统根据运行时的要求进行内存分配,这种方法称为动态存储分配。所有动态存储分配都在堆区中进行。
内存不是取之不尽用之不竭,4g、8g、16g是常见的电脑内存大小,打开任务管理器,能看到不同的应用占据的内存情况。如果一个应用程序占了大部分内存,估计别的应用就资源紧张了,那这个应用可能会被卸载,