| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 4529 人关注过本帖
标题:变长数组怎样操作?
只看楼主 加入收藏
BlueDreame
Rank: 1
等 级:新手上路
帖 子:545
专家分:2
注 册:2004-12-16
收藏
得分:0 
以下是引用baidu在2006-10-15 15:55:23的发言:

大人试试在VC纯C环境下用const和//

你试试行吗?这两个可是C99里的--如果我没记错的话。

[此贴子已经被作者于2006-10-15 18:27:42编辑过]


2006-10-15 18:20
BlueDreame
Rank: 1
等 级:新手上路
帖 子:545
专家分:2
注 册:2004-12-16
收藏
得分:0 
谢谢lj_860603,我终于有些理解了。

2006-10-15 18:26
神vLinux飘飘
Rank: 13Rank: 13Rank: 13Rank: 13
来 自:浙江杭州
等 级:贵宾
威 望:91
帖 子:6140
专家分:217
注 册:2004-7-17
收藏
得分:0 
老K说不用malloc和free等内存操作函数的才是真正的变长数组,我同意这样的观点。

但是在更早的版本中是不支持变长数组的,所以我们只好用链表去伪装一个。
但是这个伪装必须伪装得像点样子--至少你能重用你的这个部分的代码--这就要我们必须把他们伪装成为一个面向对象的类

淘宝杜琨
2006-10-15 18:39
SunShining
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:31
帖 子:2215
专家分:0
注 册:2006-2-17
收藏
得分:0 
以下是引用baidu在2006-10-15 9:48:40的发言:

c99支持,C89不支持

C99 也支持这个吗?

这个还真不清楚...

如果这样的话..那么我也认为 用malloc和new 不应该属于变长数组的范畴

vector就是利用这个来实现的..原理好象和lj说的差不多.


[glow=255,violet,2]闭关修炼ing...[/glow] [FLASH=360,180]http://www./chinaren.swf[/FLASH]
2006-10-15 18:50
SunShining
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:31
帖 子:2215
专家分:0
注 册:2006-2-17
收藏
得分:0 
细看了一下..vector的实现和lj说的原理是一样的.

而且更为灵活.

我还是先 找下 C99所支持的变长数组的资料去吧..^_^

[glow=255,violet,2]闭关修炼ing...[/glow] [FLASH=360,180]http://www./chinaren.swf[/FLASH]
2006-10-15 18:55
SunShining
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:31
帖 子:2215
专家分:0
注 册:2006-2-17
收藏
得分:0 
以下是引用baidu在2006-10-15 16:52:20的发言:
至于结构体么,也是可以用的
#include <stdio.h>
void fun(int s)
{

struct Test
{
int a[s];
int b;
}test;

for(int i=0;i<s;i++)
{
test.a[i]=i;
}

for(int i=0;i<s;i++)
{
printf(" %d ",test.a[i]);
}
printf("\n");

}
int main()
{
for(int a=10;a<20;a++)
fun(a);

return 0;
}

嘿嘿.见识了..可以实现.


[glow=255,violet,2]闭关修炼ing...[/glow] [FLASH=360,180]http://www./chinaren.swf[/FLASH]
2006-10-15 19:05
aldarsthr
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2006-10-15
收藏
得分:0 
可以预先留位置,让其变长

口号:用C做尽一切程序
2006-10-15 21:32
C语言学习者
Rank: 4
等 级:贵宾
威 望:13
帖 子:1278
专家分:0
注 册:2006-9-26
收藏
得分:0 
27楼你应该从头看一次

谁有强殖装甲第二部,可以Q我460054868
2006-10-15 21:33
aldarsthr
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2006-10-15
收藏
得分:0 
忘了说明,DB2中使用C的时候才能预留,纯C环境不行的

口号:用C做尽一切程序
2006-10-15 21:45
baidu
Rank: 3Rank: 3
等 级:新手上路
威 望:8
帖 子:3811
专家分:0
注 册:2005-11-4
收藏
得分:0 
以下是引用BlueDreame在2006-10-15 18:20:29的发言:

大人试试在VC纯C环境下用const和//

你试试行吗?这两个可是C99里的--如果我没记错的话。


我可以肯定在VC纯C环境下绝对支持const和//

虽然,我不用VC

另外,我再纠正上面几贴中有些观点是模糊的或者错误的,对于变长数组,C89标准不支持,C++标准不支持,唯有C99标准才支持,也就是说C89标准中没有变长数组这个概念,C99标准中才出现变长数组这个概念,到了C++标准又把它给废弃。


偶放弃所有文章版权,偶在BCCN论坛任何贴子,可转贴,可散发,可抄袭,可复制,可被冒名顶替,可被任何人引用到任何文章中且不写出引文出处,偶分文不取。
2006-10-16 08:09
快速回复:变长数组怎样操作?
数据加载中...
 
   



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

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