动态分配内存的问题
前几天看见这么一段话:比如5个分散的5k的空间,如果你使用数组申请一个25k的空间,则这分散的5个5k空间无法使用,系统要在内存中另外开辟一个25k的连续空间,而使用指针...
前几天看见这么一段话:
比如5个分散的5k的空间,如果你使用数组申请一个25k的空间,则这分散的5个5k空间无法使用,系统要在内存中另外开辟一个25k的连续空间,而使用指针则可以利用分散的空间。这样就提高了资源的利用率。
我的问题是,用动态申请的内存,可以不是连续的吗?
如何解释?
例如两个分散的空间,指针自加,是如何跑到另外的空间上的呢? 展开
比如5个分散的5k的空间,如果你使用数组申请一个25k的空间,则这分散的5个5k空间无法使用,系统要在内存中另外开辟一个25k的连续空间,而使用指针则可以利用分散的空间。这样就提高了资源的利用率。
我的问题是,用动态申请的内存,可以不是连续的吗?
如何解释?
例如两个分散的空间,指针自加,是如何跑到另外的空间上的呢? 展开
6个回答
展开全部
首先,坦漏誉动态申请的内存,必须是连续的,这是系统自己寻找的连续空间。此点楼主可以求证malloc,calloc等函数或者new。
原因是:虽然搜轿动态申请的空间是指针指向的,但是它不等同让段于链表。
这里还需要明确一个问题,楼主所说的动态申请内存和利用分散空间的指针不是一回事。能利用分散空间的应该是非线性链表。而动态申请的空间是连续的。非线性链表每一个元素是一个结构体,分指针域和数据域。这俩都存放在不连续的空间上,指针域指向下一结点。
问题补充回答:
如果是链表,指针是不会自加的。但是这个问题不过还是另外一种可能。因为指针是变量,它自己本身是要存储的,所以可能指针本身是一个数组,但是指针指向的空间是互相不联系的。这样,指针自加,相当于指针数组元素加一,自然下移到下一个指针,这样就指向了下一个不联系的空间。
原因是:虽然搜轿动态申请的空间是指针指向的,但是它不等同让段于链表。
这里还需要明确一个问题,楼主所说的动态申请内存和利用分散空间的指针不是一回事。能利用分散空间的应该是非线性链表。而动态申请的空间是连续的。非线性链表每一个元素是一个结构体,分指针域和数据域。这俩都存放在不连续的空间上,指针域指向下一结点。
问题补充回答:
如果是链表,指针是不会自加的。但是这个问题不过还是另外一种可能。因为指针是变量,它自己本身是要存储的,所以可能指针本身是一个数组,但是指针指向的空间是互相不联系的。这样,指针自加,相当于指针数组元素加一,自然下移到下一个指针,这样就指向了下一个不联系的空间。
中智咨询
2024-08-28 广告
2024-08-28 广告
在当今竞争激烈的商业环境中,企业需要不断提高自身的竞争力,以保持市场份额和增加利润。通过人效提升,企业可以更有效地利用有限的资源,提高生产力和效益,从而实现盈利目标。中智咨询提供全方位的组织人效评价与诊断、人效提升方案等数据和管理咨询服务。...
点击进入详情页
本回答由中智咨询提供
展开全部
其实都是按用途比较理想的!我想你是不需要!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
物理空间是可以不连续的
但对於用户来说,虚拟空间是连续的
但对於用户来说,虚拟空间是连续的
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
如果裤竖用指针的话就需要用链表,里面敌意一个指针指向你下一块空间,这就旦纯数模首是数组(线性表)和链表之间的区别啦
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
一次动态申请内存要分配连续的空间。如果没有足够大小的空间,则内存会分配失败。如果是两次分配,则这两次之间的内存,不要求是连厅辩续的。
分散的内存,指针自加?这个就不太知道了,指针自加,就跑到了另外的一个空间上?是不是巧合?恰好两个内存是连续的?你可以贴上来一个例子。
分散的携伏肆内存之间,可以通过指针把它们链接起来,这样,就克服辩轿了动态内存分配中要求内存连续的局限性。比如说,链表就是一个例子,在指针域,保存着指向下一个结点的指针,这样,就可以找到分散的存储块了。
分散的内存,指针自加?这个就不太知道了,指针自加,就跑到了另外的一个空间上?是不是巧合?恰好两个内存是连续的?你可以贴上来一个例子。
分散的携伏肆内存之间,可以通过指针把它们链接起来,这样,就克服辩轿了动态内存分配中要求内存连续的局限性。比如说,链表就是一个例子,在指针域,保存着指向下一个结点的指针,这样,就可以找到分散的存储块了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你说的可能是指针数组,每一个数组元素都是一个指针,用这样的一个指针去new一个连续的5K空间,行世然后数组++也就是到了另外一个指针了,在用这个茄带弊指针去颤族new一个连续的5K空间。那么这样下去,有5个这样的指针就可以new25K的不连续的空间了!不知道说的明白不。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询