动态数组
来源:互联网 发布:java常用中间件 doubo 编辑:程序博客网 时间:2024/04/29 10:01
每一个程序在执行时都占用一块可用的内存空间,用于存放动态分配的对象,此内存空间称为程序的自由存储区或堆。C语言程序使用一对标准库函数malloc和free在自由存储区中分配存储空间,而C++语言则使用new和delete表达式实现相同的功能。
1.动态数组的定义
静态数组是在定义是就已经在栈上分配了空间大小,在运行时这个大小不能改变,如:int a[10];动态数组的大小是在运行是给定,即,运行时在堆上分配一定的存储空间,同时运行时还可以改变其大小,如:int *a; 或者 int *a = new int[10];a = new int[10];2.初始化如果数组元素具有类类型,将使用该类的默认构造函数实现初始化。 string *psa = new string[10];如果数组元素是内置类型,则无初始化。 int *pia = new int[10];可使用跟在数组长度后面的一对空圆括号,对数组元素做值初始化。 int *pia = new int[10] ();注:对于动态分配的数组,其元素只能初始化为元素类型的默认值,而不能像数组变量一样,用初始化列表为数组元素提供各不相同的初值。3.const对象的动态数组内置类型的const对象,则必须为这个数组提供初始化。const int *pci = new const int[100]; //正确const int *pci = new const int[100](); //错误4.动态空间的释放动态分配的内存最后必须进行释放,否则,内存最终将会逐渐耗尽。C++语言为指针提供delete [ ] 表达式释放指针所指向的数组空间。delete [ ] pia; 空方括号是必不可少头文件:stdlib.h 和 malloc.hvoid free(void *memblock) 释放内存区块void *malloc(size_t size) 获取内存区块例:void main() {long *buffer;buffer = (long *)malloc(400);free(buffer);}分配size字节长度的内存块,如果分配成功,则返回指向被分配的内存指针,否则返回空指针NULL;当内存不再使用时,应使用free()函数将内存块释放。
0 0
- 动态数组
- 动态数组
- 动态数组
- 动态数组
- 动态数组
- 动态数组
- 动态数组
- 动态数组
- 动态数组
- 动态数组
- 动态数组
- 动态数组
- 动态数组
- 动态数组
- 动态数组
- 动态数组
- 动态数组
- 动态数组
- WinCE下对文件夹的操作
- 网络编程学习小结
- 自定义垂直进度条
- Spring Data JPA 111
- Linux du查看文件夹、文件大小
- 动态数组
- LeetCode Pow(x, n)
- HTTP的heard总结
- 自定义 SwitchButton
- Windows下简单配置Maven环境
- 设置Ubuntu允许远程连接MySQL
- iOS 8 beta 2发布:新增来电归属地功能
- “拉斯多尼,这八十多万战士战死后,对帝国有影响吗?”芒特拉斯
- php ie 操作 session失效 无法读取session 谷歌火狐正常