标题:数组不够如何追加?
只看楼主
kakac001
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2006-4-24
 问题点数:0 回复次数:19 
数组不够如何追加?

RT,

要求追加后的数组名不变。。

也就是说比如有数组 A[10],

我希望追加空间至 A[15],当然前面A[10]内的东西不变咯。


另,以下是我自己的想法,但请不必按我的想法去考虑。

我想用malloc和remalloc,但是确发现一个数组大小一旦确定,

这个数组名是无法作为表达式的左值,所以不知道如何解决。


希望达人赐教,在这里小弟先谢过了。

搜索更多相关主题的帖子: 空间 remalloc 表达 
2006-08-30 23:21
论坛
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:1372
专家分:0
注 册:2006-3-27
得分:0 
动态内存分配啊

日出东方,唯我不败! 做任何东西都是耐得住寂寞,任何一个行业要有十年以上的积累才能成为专家
2006-08-30 23:22
论坛
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:1372
专家分:0
注 册:2006-3-27
得分:0 
这个数组名是无法作为表达式的左值
=============

数组名是不能作为左值啊, 有什么不对的啊

日出东方,唯我不败! 做任何东西都是耐得住寂寞,任何一个行业要有十年以上的积累才能成为专家
2006-08-30 23:25
kakac001
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2006-4-24
得分:0 

您好,

您所谓的动态内存分配是指malloc和remalloc吧??

但是用它们又如何实现数组名不改变而数组的空间却变大呢???

因为C里的数组名是常量,SO如何给一个已经定容的数组扩容呢??

2006-08-30 23:32
kakac001
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2006-4-24
得分:0 

就是因为数组名无法作为左值,

所以没法给它直接增加空间啊。

呵呵,我知道这个问题应该蛮简单的,但是确实不知道如何解决。

还望赐教

2006-08-30 23:33
论坛
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:1372
专家分:0
注 册:2006-3-27
得分:0 
int *p = NULL;
然后先调用malloc, 当空间不够时再调用realloc分配空间

日出东方,唯我不败! 做任何东西都是耐得住寂寞,任何一个行业要有十年以上的积累才能成为专家
2006-08-30 23:34
kakac001
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2006-4-24
得分:0 

您好,

谢谢您,呵呵。

但是您这里的p是指针,而不是数组。

2006-08-30 23:36
论坛
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:1372
专家分:0
注 册:2006-3-27
得分:0 
分配完之后不就能当数组用了没

日出东方,唯我不败! 做任何东西都是耐得住寂寞,任何一个行业要有十年以上的积累才能成为专家
2006-08-30 23:44
kakac001
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2006-4-24
得分:0 

问题就在于此了。

申请到的只是一个空间,返回的是一个指针,

而指向这个空间的指针是无法赋值给原本的那个数组名的。。。

2006-08-30 23:51
论坛
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:1372
专家分:0
注 册:2006-3-27
得分:0 
不明白你想做什么, 数组名是常量做什么左值啊!

日出东方,唯我不败! 做任何东西都是耐得住寂寞,任何一个行业要有十年以上的积累才能成为专家
2006-08-30 23:54



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-87073-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.083043 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved