c语言中定义数组的时候可不可以缺省数组长度 ,在用户输入任意字符后让系统自动判断长度,如果可以的话

c语言中定义数组的时候可不可以缺省数组长度,在用户输入任意字符后让系统自动判断长度,如果可以的话代码要怎么写... c语言中定义数组的时候可不可以缺省数组长度 ,在用户输入任意字符后让系统自动判断长度,如果可以的话代码要怎么写 展开
 我来答
金色潜鸟
2018-03-23 · TA获得超过3.2万个赞
知道大有可为答主
回答量:1.3万
采纳率:89%
帮助的人:5527万
展开全部
(1)你可以定义一个长度长于需要的数组,例如: char str[500];
或者 (2)运行时,输入长度,做动态分配,再输入数据 ,例如:
char *str; int n;
printf("input length n: "); scanf("%d",&n);
str = malloc(sizeof(char) * n);
或者 不知道长度,完全随机, 那么 (3) 用 realloc 反复动态分配。这个较繁锁,你可参考下面的 整型数组分配法,做你的 char 数组 或 别的数组的 反复动态分配。
#include <stdio.h>
#include <stdlib.h> /* realloc, free, exit, NULL */

intmain ()
{
int input,n;
int count = 0;
int *numbers = NULL; //动态数组
int *more_numbers = NULL;

do{
printf ("Enter an integer value (0 to end): ");
scanf ("%d", &input); //输入一个数
count++; // 计数器,数的个数

more_numbers = (int*) realloc (numbers, count *sizeof(int)); //分配,增加内存

if(more_numbers!=NULL) { //检查是否分配成功
numbers=more_numbers;
numbers[count-1]=input;
}
else{
free (numbers);
puts ("Error (re)allocating memory");
exit (1);
}

}while(input!=0); //循环

printf ("Numbers entered: ");
for(n=0;n<count;n++) printf ("%d ",numbers[n]);
free (numbers);

return0;
}
黄山Felix
2018-03-23 · TA获得超过828个赞
知道小有建树答主
回答量:498
采纳率:16%
帮助的人:259万
展开全部
如果是纯C语言的话,这种做法是不可以的,建议使用C 语言与C++ 混合的方式来写代码,这样就可以一定程度上缺省数组长度
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
黑无常81
2017-10-10 · 超过25用户采纳过TA的回答
知道答主
回答量:78
采纳率:50%
帮助的人:30.2万
展开全部

C语言大致有三个标准: C89,C99,C11。

C99开始支持变长数组。

http://blog.csdn.net/xieyihua1994/article/details/51340354

可变长数组
C99中,程序员声明数组时,数组的维数可以由任一有效的整型表达式确定,包括只在运行时才能确定
其值的表达式,这类数组就叫做可变长数组,但是只有局部数组才可以是变长的.
可变长数组的维数在数组生存期内是不变的,也就是说,可变长数组不是动态的.可以变化的只是数组的大小.
可以使用*来定义不确定长的可变长数组。

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
听不清啊
高粉答主

推荐于2018-03-23 · 说的都是干货,快来关注
知道顶级答主
回答量:7.8万
采纳率:89%
帮助的人:1.9亿
展开全部
c语言中定义数组的时候不可以缺省数组长度,在用户输入任意字符后让系统自动判断长度。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
在菩萨山写故事的林雕
2018-03-23 · TA获得超过939个赞
知道小有建树答主
回答量:362
采纳率:79%
帮助的人:102万
展开全部
  1. 不能。

  2. 而且也不建议动态创建数组,建议初始化数组时直接赋以固定长度,例如:

char str[1000];

╮(╯▽╰)╭

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(5)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式