关键区别 - 静态与动态内存分配
在编程中,有必要存储计算数据。这些数据存储在内存中。将数据存储在计算机编程中的存储位置称为变量。变量具有特定的数据类型。因此,将内存分配以运行程序。可以通过两种方式分配内存。它们是静态内存分配和动态内存分配。在静态内存分配中,一旦分配了内存,就无法更改。内存不可重复使用。但是在动态内存分配中,一旦分配了内存,就可以更改它。 The关键区别在静态和动态内存分配之间在分配内存后,在静态内存分配中,在动态内存分配中固定内存大小,一旦分配了内存,就可以更改内存大小。
内容
1。概述和关键差异
2。什么是静态内存分配
3。什么是动态内存分配
4。静态和动态内存分配之间的相似性
5。并排比较 - 静态与动态内存分配以表格形式
6。概括
什么是静态内存分配?
在静态内存分配中,分配的内存已固定。一旦分配内存,就无法更改。记忆力不能增加或减少。例如,在C语言如果程序员写入int x,则意味着该变量可以存储整数值。字节数取决于计算机。也可以数组。例如。int x [5];该X是一个数组,可以存储相同类型的数据序列。它可以存储五个整数元素。它不能存储超过五个元素。在Java中,可以创建一个数组为,int arr [] = new int [5];数组“ ARR”可以存储5个整数值,并且不能存储更多的数字。
图01:内存分配方法
在静态内存分配中,一旦分配了变量,它们将保持永久性。初始分配后,程序员无法调整内存大小。如果程序员分配了一个可以存储10个元素的数组,则不可能存储比指定金额的数量更多。如果程序员最初分配了一个可以容纳10个元素但只需要5个元素的数组,则有一个内存浪费。不再需要该内存,但是也不可能重复使用内存。静态内存分配是固定的,但是实现简单简单,并且也很快。
什么是动态内存分配?
有时有必要更改内存的大小。因此,可以动态分配内存。根据数据元素的插入和删除,内存可以增长或收缩。它被称为动态内存分配。
在C语言中,stdlib.h标题文件,有四个用于动态内存分配的函数。它们是Calloc,Malloc,Realloc和免费的。函数malloc()分配了所需的字节大小,并返回一个空隙指针,指向分配的内存的第一个字节。函数calloc()分配了所需的字节大小,并将其初始化为零。然后将空隙指针返回到内存。Free()函数用于重新分配分配的内存。Realloc函数可以修改先前分配的内存。使用Calloc或Malloc分配内存后,固定内存大小,但是可以使用REALLOC函数增加或减少它们。在Java中,可以将集合用于动态内存分配。
动态内存分配的主要优点是它保存了内存。程序员可以根据需要分配内存或释放内存。可以在执行过程中重新分配内存,并在不需要时可以释放内存。动态内存分配也比静态内存分配也有效。一个缺点是实施动态内存分配是复杂的。
静态内存分配和动态内存分配之间有什么相似之处?
- 两者都是内存分配机制。
- 两者都应由程序员手动实施。
静态内存分配和动态内存分配有什么区别?
静态与动态内存分配 |
|
| 静态内存分配是一种分配内存的方法,一旦分配内存,就可以修复。 | 动态内存分配是一种分配内存的方法,一旦分配了内存,就可以更改它。 |
| 修改 | |
| 在静态内存分配中,初始分配后不可能调整大小。 | 在动态内存分配中,可以将内存最小化或相应地最大化。 |
| 执行 | |
| 静态内存分配易于实现。 | 动态内存分配很复杂。 |
| 速度 | |
| 在静态内存中,分配执行比动态内存分配快。 | 在动态内存中,分配执行比静态内存分配要慢。 |
| 内存利用 | |
| 在静态内存分配中,无法重复使用未使用的内存。 | 动态内存分配允许重复内存。程序员可以在需要时分配更多内存。他可以在必要时释放内存。 |
概括 -静态与动态内存分配
在编程中,静态内存分配和动态内存分配是分配内存的两种机制。静态内存分配和动态内存分配之间的区别在于,在分配内存后,在静态内存分配中,在动态内存分配中固定内存大小,一旦内存分配,就可以更改内存大小。程序员可以根据应用程序确定内存是静态还是动态。
下载静态与动态内存分配的PDF
您可以下载本文的PDF版本,并根据引文注释将其用于离线目的。请在此处下载PDF版本:静态和动态内存分配之间的差异
参考:
1. Kayal,Somnath。“ Somnath Kayal。”1970年1月1日,静态内存分配和动态内存分配之间的差异。在这里可用
2.Tutorialspoint.com。“阵列在C.”重点。在这里可用
3. Nareshtechnologies。静态内存与动态内存|C语言教程,Naresh I Technologies,2016年9月19日。在这里可用

发表评论