C++动态内存分配
•静态内存分配——分配固定大小内存
缺点:大多数情況下会浪费内存空间,少数情况下可能引起下标越界。•动态内存分配——分配可变大小内存
优点:不需要预先分配存储空间,分配的空间可根据程序需要扩大或缩小。
molloc函数一.C语言动态内存分配
♦malloc函数:malloc(unsigned int size);
函数在内存的动态存储区中分配一个长度为size的连续空间。其参数是一个无符号整形数,返回值是一个指向所分配的连续存储域的起始地址的指针。
当函数未能成功分配存储空间(如内存不足)就会返回一个NULL指针。所以在调用该函数时应该检测返回值是否为NULL并执行相应的操作。
示例1:
♦free函数:void free(void*p);
函数功能是释放指针p所指向的内存区。其参数p必须是先前调用malloc 函数时返回的指针。如果给free函数传递其它的值很可能造成死机或其它灾难性的后果。
示例2:
二.C++动态内存分配
♦操作符new
返回一个指向内存块开始位置的指针。
示例3:
动态内存分配通常由操作系统控制,在多任务的环境中,它可以被多个应用共享,因此内存有可能被用光。如果这种情况发生,操作系统将不能在遇到操作符new时分配所需的内存,一个无效指针(null pointer)将被返回。因此,在使用new之后总是检查返回的指针是否为空(NULL)。
示例4:
♦操作符delete
既然动态分配的内存只是在程序运行的某一具体阶段才有用,那么一旦它不再被需要时就应该被释放,以便给后面的内存申请使用。
delete操作符可以释放内存空间:delete[]pointer;
示例5:
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论