网创优客建站品牌官网
为成都网站建设公司企业提供高品质网站建设
热线:028-86922220
成都专业网站建设公司

定制建站费用3500元

符合中小企业对网站设计、功能常规化式的企业展示型网站建设

成都品牌网站建设

品牌网站建设费用6000元

本套餐主要针对企业品牌型网站、中高端设计、前端互动体验...

成都商城网站建设

商城网站建设费用8000元

商城网站建设因基本功能的需求不同费用上面也有很大的差别...

成都微信网站建设

手机微信网站建站3000元

手机微信网站开发、微信官网、微信商城网站...

建站知识

当前位置:首页 > 建站知识

动态内存分配-创新互联

c语言动态内存分配

成都创新互联公司主营元宝网站建设的网络公司,主营网站建设方案,成都app软件开发公司,元宝h5重庆小程序开发公司搭建,元宝网站营销推广欢迎元宝等地区企业咨询

 主要初步介绍malloc、calloc、realloc、free的基本用法。都是标准的库函数,在stdlib.h库内。


 malloc、free

分别用于动态内存分配和释放

,调用形式: (类型说明符*) malloc (size) ,“类型说明符”表示把该区域用于何种数据类型。(类型说明符*)表示把返回值强制转换为该类型指针,malloc分配的内存是位于堆上的,并且没有初始化内存的内容。malloc动态开辟一块长度为size字节的连续区域,size为需要内存空间的长度,返回该区域的首地址。用malloc分配存储空间时,必须由我们计算需要的字节数。如果想要分配10个int型的空间,那就是说需要10*sizeof(int)的内存空间。malloc分配的内存空间也有缺点,如果由malloc函数分配的内存空间原来没有被使用过,则其中的每一位都有可能是0,反之,如果这部分内存曾经被分配过,则其中可能遗留各种各样的数据。也就是说,使用malloc()函数分配内存时可能会出现问题。


int *p = (int *)malloc(10*sizeof(int));///分配完内存没有初始化

calloc 也用于分配内存空间。调用形式: (类型说明符*)calloc(n,size) ,在内存动态存储区中分配n块长度为“size”字节的连续区域。函数的返回值为该区域的首地址。(类型说明符*)用于强制类型转换。calloc函数与malloc 函数的区别仅在于一次可以分配n块区域。 colloc与malloc类似,但是主要的区别是存储在已分配的内存空间中的值默认为0,使用malloc时,已分配的内存中可以是任意的值. colloc需要两个参数,第一个是需要分配内存的变量的个数,第二个是每个变量的大小.

int *q = (int *)calloc(5,sizeof(int)); //calloc = malloc + memset//分配完内存自动初始化

realloc(p,5*sizeof(char));更改已经配置的内存空间,即更改由malloc()函数分配的内存空间的大小.如果重新分配成功则返回指向被分配内存的指针,否则返回空指针NULL。 当内存不再使用时,应使用free()函数将内存块释放。

 注意:这里原始内存中的数据还是保持不变的。

*p = realloc(p,5*sizeof(char));//修改malloc分配内存大小

另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


本文名称:动态内存分配-创新互联
转载来源:http://bjjierui.cn/article/cdojjh.html

其他资讯