转载和积累系列 - C语言学习笔记 - 动态分配内存
来源:互联网 发布:读梦里花落知多少有感 编辑:程序博客网 时间:2024/04/30 15:19
所谓动态内存分配就是指在程序执行的过程中动态地分配或者回收存储空间的分配内存的方法。动态内存分配不象数组等静态内存分配方法那样需要预先分配存储空间,而是由系统根据程序的需要即时分配,且分配的大小就是程序要求的大小。从以上动、静态内存分配比较可以知道动态内存分配相对于景泰内存分配的特点:
1、不需要预先分配存储空间;
2、分配的空间可以根据程序的需要扩大或缩小。
- malloc函数的原型为:
void *malloc (unsigned int size)
其作用是在内存的动态存储区中分配一个长度为size的连续空间。其参数是一个无符号整形数,返回值是一个指向所分配的连续存储域的起始地址的指针。还有一点必须注意的是,当函数未能成功分配存储空间(如内存不足)就会返回一个NULL指针。所以在调用该函数时应该检测返回值是否为NULL并执行相应的操作。
- free函数
由于内存区域总是有限的,不能不限制地分配下去,而且一个程序要尽量节省资源,所以当所分配的内存区域不用时,就要释放它,以便其它的变量或者程序使用。这时我们就要用到free函数。
其函数原型是:
void free(void *p)
作用是释放指针p所指向的内存区。
其参数p必须是先前调用malloc函数或calloc函数(另一个动态分配存储区域的函数)时返回的指针。给free函数传递其它的值很可能造成死机或其它灾难性的后果。
- 代码:
#include <stdio.h>#include <stdlib.h>#include <string.h>int main() {char *p;p = (char *)malloc(100000*sizeof(char)); //定义一个动态内存scanf("%s", p);printf("%s%d", p, strlen(p));free(p); //释放内存system("pause");return 0;}
- 转载和积累系列 - C语言学习笔记 - 动态分配内存
- C语言复习 指针和动态分配内存
- C语言动态分配内存
- C语言动态分配内存
- C语言--动态分配内存
- C学习笔记(1)--动态分配内存
- 转载和积累系列 - 内存对齐
- C语言有关内存和动态分配内存传递问题
- C语言的动态分配内存
- C语言中动态分配内存
- C语言中动态分配内存
- C语言动态分配内存知识
- c语言实现动态分配内存
- C语言之动态分配内存
- C语言动态分配内存0823
- C语言中动态分配内存
- 转载和积累系列
- C语言深入学习--checklist5:sizeof、指针、动态分配内存
- asp定时自动查询自己的外网ip并发送到邮箱【邮件的使用的组件是jmail】
- HTTPS中SunCertPathBuilderException: unable to find valid certification path to requested target
- 王老师拼音输入法的算法
- visual C++中最常用的类与API函数
- jquery获取浏览器高度、宽度和滚动条高度
- 转载和积累系列 - C语言学习笔记 - 动态分配内存
- RadControls for Silverlight(学习1-GridView)
- 未定义整型-858993460,未定义指针0xcccccccc的含义
- 滚动条下拉不断获取新内容
- java中如何调用CMD命令及cmd大全
- 关键字restrict简介
- 决不放弃
- NHibernate笔记Ⅲ--关于EF和NH的比较
- Python中的分号