函数:它的作用是在内存的动态存储区域中分配一块长度为size的连续空间。它的参数是一个无符号整数,返回值是一个指向分配的连续存储区域起始地址的指针。
2.释放功能:由于内存区域总是有限的,所以不能无限制地分配,而一个程序必须尽量节省资源,所以当分配的内存区域不使用时,必须将其释放,以便被其他变量或程序使用。这时候我们就要用到free函数了。
函数:它的作用是在内存的动态存储区域中分配n个长度为size的连续空间。该函数返回一个指向已分配区域起始位置的指针,如果分配不成功则返回NULL。
扩展信息:
函数运算符:
新
运算符new用于向系统申请动态存储空间,并以首地址作为运算结果。其使用形式为:
指针变量=新数据类型;
例如:
int*p=newint
这条语句的作用是用new向from申请一个int类型变量(4个字节)内存,并分配变量的首地址给指针变量p。
new创建的变量初始值是任意的,也可以在用new分配内存的同时进行初始化。使用形式为:
指针变量=新数据类型(初始值)。
删除
堆内存可以根据需要分配。程序的内存要求可能随时发生变化。有时程序可能不再需要new分配的内存空间,而程序还没有运行完。这时需要将之前占用的内存空间释放到堆内存,然后重新分配给程序的其他部分使用。操作符delete用于释放new分配的内存空间并删除创建的对象。其使用形式为:
删除指针变量;
指针变量保存新的分配。内存的首地址。
参考资料:--动态内存分配
正在进行的内存动态存储在堆内存区域中。
称为堆。C语言:char*p1;p1=(char*)malloc(10);//在栈区分配10字节的区域。
C++语言:用new分配,用delete释放,在堆区。使用malloc进行分配,用于免费释放,在堆等免费文件中。堆与栈的不同之处在于,它的数据结构不被系统(无论是机器系统还是操作系统)支持,而是由函数库提供。
直接法:
多道程序设计技术尚未出现,可用内存空间几乎是给定的。当时,程序员在编程或编译器编译源代码时使用实际的内存地址。
系统资源一次只能被一个用户占用。当多道程序出现时,用户感觉很不方便,因为用户自己分配主存,需要不止一块内存。这增加了用户的负担,并且使用的系统存储空间也相当低。
上一篇:heap一般用于动态分配内存
下一篇:动态分配内存关键字