| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2870 人关注过本帖
标题:数组不够如何追加?
取消只看楼主 加入收藏
kakac001
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2006-4-24
收藏
 问题点数:0 回复次数:9 
数组不够如何追加?

RT,

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

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

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


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

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

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


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

搜索更多相关主题的帖子: 空间 remalloc 表达 
2006-08-30 23:21
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
kakac001
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2006-4-24
收藏
得分:0 

您好,

谢谢您,呵呵。

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

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

问题就在于此了。

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

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

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

。。。

我说的不够明白?? - - ||

就是要给它增大空间啊,不把申请到的空间加到它上面,

怎么给它增大空间??

2006-08-31 00:13
kakac001
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2006-4-24
收藏
得分:0 

恩``

谢谢论坛和wind斑斑。。

我改用动态了,但为什么我这样的是错的啊??
typedef struct test
{
int a;
char arr[10];
int b;
}test;
test *Ptest;
Ptest = (test *)malloc(2*sizeof(test));

错误: 1。 缺少存储类或类型说明符
2。“Ptest” : “int”与“test *”的间接寻址级别不同
3. “初始化” : 无法从“test *”转换为“int”

2006-08-31 10:25
kakac001
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2006-4-24
收藏
得分:0 
错误1那里指的是 Ptest
2006-08-31 10:37
kakac001
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2006-4-24
收藏
得分:0 

谢谢haishanglang

你帖出来的程序给了我点灵感,

我是把那个指针及申请空间都直接放在程序最上方,想做为一个全局变量来着。

但是一直有上面那几个错误,

我刚试了下,将这两个放到main函数里就OK了。

但不知道这是为什么。。。难道是申请空间必须放在主函数下?

而不能在main 函数外??

2006-08-31 10:44
kakac001
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2006-4-24
收藏
得分:0 

恩``

再次感谢各位的热心帮忙``

问题基本上解决了。

:)

2006-08-31 19:35
快速回复:数组不够如何追加?
数据加载中...
 
   



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

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