搜索

malloc()函数怎么体现动态分配内存?已经分配好的内存要往里面

gecimao 发表于 2019-07-03 20:12 | 查看: | 回复:

  可选中1个或多个下面的关键词,搜索相关资料。也可直接点“搜索资料”搜索整个问题。

  也就是分配了 n * sizeof(int) 个字节的内存,并且让int型指针 p 指向首地址

  这是你可以使用这些内存,注意这些内存空间是连续的,可以像数组一样使用 p[i]=13

  你的疑问:内存分配是动态的,也就是可以用变量控制的,如果想要想matlab那样自动调大,当然可以,不过你有两种方法:自己写代码,或找别人的代码,c语言没有提供这类函数,而c++里面有标准容器,其中的vector就是自动调整的

  展开全部malloc本身不能体现自动调整类的动态分配内存,它只能实现在程序运行时决定的内存尺寸的申请,比如你打开不同的图象时,对于不同尺寸的图象要临时决定申请多大内存。这种动态申请是相对于事先由程序告诉编译器要申请多大尺寸的数组这类情况的,在这个意义上,malloc申请的内存是在程序运行时才申请而不是事先申请好的,所以叫“动态”。

  在malloc申请好的内存中添加数据不会使系统自动调整相关内存尺寸,除非你设计程序来调整,比如发现数据量超出预先定义尺寸则重新申请一块大些的内存,并将原来的数据存放过来,再释放原先malloc的内存;这些操作类似于realloc函数的功能。如果再想复杂和智能只能编程序实现了。

  动态内存分配,可以自由的分配指定大小的内存空间。当程序运行时,程序员并不清楚某一数据需要的具体内存空间大小时,可以使用动态分配。

  分配一个nSize大小的内存空间,如果分配成功则返回地址空间的首地址,如果分配失败则返货NULL

  nSize一般使用 sizeof(类型A)*N 的计算方式获取大小。意思为:为分配n个类型A所占空间的大小。

本文链接:http://hem-larm.com/dongtaicunchuguanli/896.html
随机为您推荐歌词
推荐文章

联系我们 | 关于我们 | 网友投稿 | 版权声明 | 广告服务 | 站点统计 | 网站地图

版权声明:本站资源均来自互联网,如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

Copyright @ 2012-2013 织梦猫 版权所有  Powered by Dedecms 5.7
渝ICP备10013703号  

回顶部