栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

C语言(动态内存分配)

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

C语言(动态内存分配)

动态内存分配:

1.字符串存储在字符数组中,而且可能很难预测这些数组需要的长度。通过动态地分配字符串,可以推迟到程序运行时才作决定

2.对于较大型的程序来说,如果是静态内存分配,还没等程序运行完,内存已被占用,但如果使用动态内存分配,在使用完每一个内存空间后将其释放,执行下一段指令,可以显著提高程序运行效率

malloc()函数:

void *malloc(size_t size);//作用:申请number个int类型(4个字节)的空间
                         //返回值:若分配成功返回一个指向已分配的空间开头的指针
                          //若失败则返回一个空指针NULL
                         //因此在使用此函数时要判断申请内存是否成功
                      //size和size_t任何一个都不能为0.如果为0会发生未知错误                         

函数运用:

#include
#include
int main()
{
    int number;
	int *a;
	int i;
	printf("请输入数量:");
	scanf("%d",&number);
	a = (int*)malloc(number*sizeof(int));//由于malloc()函数的返回值为void型指针,(int*) 
                                         //强制将void型指针转换为int型指针
	                    //分配number个int类型的空间即数组大小的空间,相当于创建一个a[n]数组 
		if(a!=NULL)   //可以打成if(a),表示如果a这个地址存在或表示动态内存空间分配成功
	{
        for(i=0;i=0;i--)
        {
        	printf("%d ",a[i]);
	    }
    } 
	free(a);    //释放空间
	return 0; 
} 

calloc()函数:

void *calloc(size_t size);//与malloc函数类似
                      //区别为calloc函数在返回地址之前会
                      //将申请到的每个空间的每个字节都初始化为0

free()函数:

free();//作用:在用malloc函数申请了内存后,在使用后如果未释放会造成内存泄漏
        //导致程序越来越慢 
        //同一个申请过的内存空间不能重复释放

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/883841.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号