有没有一种方法不设置数组的长度

tlnlove2011 2011-09-23 03:50:02
比如定义一个一维数组a[],[]中必须设置数组的长度 我怎么才能输入N个数 想输入几个就输入几个 ?
...全文
470 19 打赏 收藏 转发到动态 举报
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
赵4老师 2011-09-28
  • 打赏
  • 举报
回复
[Quote=引用 16 楼 jerryjbiao 的回复:]
引用楼主 tlnlove2011 的回复:
比如定义一个一维数组a[],[]中必须设置数组的长度 我怎么才能输入N个数 想输入几个就输入几个 ?


建议lz用STL中的vector实现
[/Quote]
万一人家输入100000000000000000000呢?
lazy_2010 2011-09-23
  • 打赏
  • 举报
回复
使用 COM 中常用的 VARIANT 类型,可以同时描述 int, long, float, double
淡然一笑 2011-09-23
  • 打赏
  • 举报
回复
const int N=?;
char a[N];
memset(a,0,strlen(a));
//改变N值不就行了么
小坏猪猪 2011-09-23
  • 打赏
  • 举报
回复
[Quote=引用楼主 tlnlove2011 的回复:]
比如定义一个一维数组a[],[]中必须设置数组的长度 我怎么才能输入N个数 想输入几个就输入几个 ?
[/Quote]

建议lz用STL中的vector实现
tlnlove2011 2011-09-23
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 bellbird 的回复:]
引用 3 楼 tlnlove2011 的回复:

还有一个问题能不能吧整型 浮点型的数混合排序 就是我输入1 2.3 9 8.2 从小到大是1 2.3 8.2 9有木有?

定义一个浮点数组,整形会自动转换之
[/Quote]
您说的是书上有一个不同类型数据运算自动转换规则那个吗 也就是说比如我想吧uchar int double三种类型进行排序 他们都会自动转换成double类型?谢谢
fichgood 2011-09-23
  • 打赏
  • 举报
回复
你是说动态的数组?可以啊...不过要用标准模板库
bellbird 2011-09-23
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 tlnlove2011 的回复:]

还有一个问题能不能吧整型 浮点型的数混合排序 就是我输入1 2.3 9 8.2 从小到大是1 2.3 8.2 9有木有?
[/Quote]
定义一个浮点数组,整形会自动转换之
赵4老师 2011-09-23
  • 打赏
  • 举报
回复
万一你输入100000000000000000000个呢?
//使用动态分配
#include <stdio.h>
#include <stdlib.h>
#include <malloc.h>
int i,L;
char *p;
void main() {
for (i=0;i<20000;i++) {
L=rand();
p=malloc(L);
if (NULL==p) {
printf("malloc error!\n");
continue;
}
memset(p,0,L);
free(p);
}
}
//不使用动态分配
#include <stdio.h>
#include <stdlib.h>
#include <memory.h>
#define MAXLEN 30000
int i,L;
char buf[MAXLEN];
char *p;
void main() {
p=&buf[0];
for (i=0;i<20000;i++) {
L=rand();
if (L>MAXLEN) {
printf("L>MAXLEN==%d, ignore spilth.\n",MAXLEN);
L=MAXLEN;
}
memset(p,0,L);
}
}
jackyjkchen 2011-09-23
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 jiuchang 的回复:]
gcc 现在支持动态数组
[/Quote]
一样不能自动延长,用来部分代替malloc的功能而已
WongWua 2011-09-23
  • 打赏
  • 举报
回复
是不确定参数param
jiuchang 2011-09-23
  • 打赏
  • 举报
回复
gcc 现在支持动态数组
luciferisnotsatan 2011-09-23
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 jackyjkchen 的回复:]

数组必须得有一个预设的长度

即便动态分配malloc也要指定长度

你只能这样,malloc一个长度,记录下来,每次填入数据的时候看看超过这个长度没有,快超过的时候realloc增大

这就是C++中string/vector的方式

或者直接vector,最好
[/Quote]
++

用C++,直接用vector好了。
ljhhh0123 2011-09-23
  • 打赏
  • 举报
回复
内存有限,但你需求无度。
xiaojunjun1202 2011-09-23
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 jackyjkchen 的回复:]
引用 3 楼 tlnlove2011 的回复:
还有一个问题能不能吧整型 浮点型的数混合排序 就是我输入1 2.3 9 8.2 从小到大是1 2.3 8.2 9有木有?


直接用浮点型的数组就行了,1就当他是1.0
[/Quote]
+1
jackyjkchen 2011-09-23
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 tlnlove2011 的回复:]
还有一个问题能不能吧整型 浮点型的数混合排序 就是我输入1 2.3 9 8.2 从小到大是1 2.3 8.2 9有木有?
[/Quote]

直接用浮点型的数组就行了,1就当他是1.0
jackyjkchen 2011-09-23
  • 打赏
  • 举报
回复
数组必须得有一个预设的长度

即便动态分配malloc也要指定长度

你只能这样,malloc一个长度,记录下来,每次填入数据的时候看看超过这个长度没有,快超过的时候realloc增大

这就是C++中string/vector的方式

或者直接vector,最好
tlnlove2011 2011-09-23
  • 打赏
  • 举报
回复
还有一个问题能不能吧整型 浮点型的数混合排序 就是我输入1 2.3 9 8.2 从小到大是1 2.3 8.2 9有木有?
就想叫yoko 2011-09-23
  • 打赏
  • 举报
回复
new
malloc
指针也可以通过下标运算符访问
zjn0608 2011-09-23
  • 打赏
  • 举报
回复
用动态数组啊

64,637

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧