malloc()函数怎么体现动态分配内存?已经分配好的内存,要往里面再加数据,内存空间会自动调大吗?
1个回答
展开全部
malloc本身不能体现自动调整类的动态分配内存,它只能实现在程序运行时决定的内存尺寸的申请,比如你打开不同的图象时,对于不同尺寸的图象要临时决定申请多大内存。这种动态申请是相对于事先由程序告诉编译器要申请多大尺寸的数组这类情况的,在这个意义上,malloc申请的内存是在程序运行时才申请而不是事先申请好的,所以叫“动态”。
在malloc申请好的内存中添加数据不会使系统自动调整相关内存尺寸,除非你设计程序来调整,比如发现数据量超出预先定义尺寸则重新申请一块大些的内存,并将原来的数据存放过来,再释放原先malloc的内存;这些操作类似于realloc函数的功能。如果再想复杂和智能只能编程序实现了。
在malloc申请好的内存中添加数据不会使系统自动调整相关内存尺寸,除非你设计程序来调整,比如发现数据量超出预先定义尺寸则重新申请一块大些的内存,并将原来的数据存放过来,再释放原先malloc的内存;这些操作类似于realloc函数的功能。如果再想复杂和智能只能编程序实现了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询