当前位置:首页 » 编程语言 » c语言不定数组
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

c语言不定数组

发布时间: 2022-04-03 11:54:02

c语言如何实现不确定长度的数组

这个比较复杂了,需要用链表采用内存空间申请的方式,初学者暂时可以不要考虑这个了

Ⅱ C语言不定大小二维数组

把你的所有len[]改成len就行了。len就1个元素,那实质就是一个变量,干嘛要声明成1个元素的数组呢?不是自找麻烦吗?原来只有len[0]有效,可代码中几处用了len[1],因为没有为其赋值,一般情况下其中的值很大或是负数(随机的),代码啥时才能做完啊……
另:你没有释放内存!大忌!

Ⅲ c语言 不定长数组

数组本身就是静态连续分配的,其有数据类型,也就是说是固定长度的,不定义就默认,你写的就是char 型的,长度为256;
动态数组就借助于指针了,char *c = (char*)malloc(sizeof(char) * strlen);strlen是所定义的数组的维数,这样在定义后,在栈内分配,不用了一定要free(c),不然,系统一直占用!

希望可以帮到你,如果满意请采纳!

Ⅳ C语言定义元素不确定的数组

用malloc函数动态申请一、二维数组

定义一维数组:

#include "stdio.h"
main()
{
int n;
int *p;
printf("请输入数组元素个数n:\n");
scanf("%d",&n);
p=(int *)malloc(sizeof(int)*n);
printf("请输入数组:\n");
for(i=0;i<n;i++)
scanf("%d",&p[i]);
for(i=0;i<n;i++)
printf("%d ",p[i]);
}

定义二维数组:

#include "stdio.h"
main()
{
int n,m;
int **p;
printf("请输入二维数组的行列数n和m:\n");
scanf("%d%d",&n,&m);
p=(int **)malloc(sizeof(int)*n);
p[i]=(int *)malloc(sizeof(int)*m);
printf("请输入二维数组:\n");
for(i=0;i<n;i++)
for(j=0;j<m;j++)
scanf("%d",&p[i][j]);
for(i=0;i<n;i++)
{
for(j=0;j<m;j++)
printf("%d "p[i][j]);
printf("\n");
}
}

如果对你有所帮助,请记得采纳最佳答案,谢谢!

Ⅳ C语言数组输入输出问题 定义一个数组 输入不定个数的数字 怎么弄 输出怎么输出 循

如果限制于C语言的话。那么就不是很方便了。

但是是有方法的:有叫malloc,realloc的函数,在头文件<stdlib.h>或者<malloc.h>里面(看编译器)。

给你一个我写的代码。你看着怎么用。可以输入任意数量的int型数字,然后直接输出。

测试平台:Devc++

输入:20 10 50 30 ctrl+z(键盘ctrl键,表示输入结束,结束符)

输出:20 10 50 30

输入:20 10 50 30 50 50 50 ctrl+z(键盘ctrl键,表示输入结束,结束符)

输出:20 10 50 30 50 50 50

#include<stdio.h>
#include<stdlib.h>
#include<malloc.h>
intmain(){
inta,j,i=0;//输入数字暂时存放的地方,j后面输出的时候要用,i记录存入了几个数字
int*stack=(int*)malloc(1*sizeof(int));//数组*stack,malloc(size)是申请一个空间
while(scanf("%d",&a)!=EOF){//如果输入的不是EOF结束
stack[i]=a;//放到数组里面
i++;//记录++
stack=(int*)realloc(stack,sizeof(int));//realloc(address,size)向address上面追加size个空间
}
for(j=0;j<i;j++){
printf("%d ",stack[j]);
}
return0;
}

Ⅵ 在c语言中如何将一组不定长度的数存入数组

C语言中不能定义未确定个数的数组,不过可以用指针来变相的完成你的要求。
示例程序如下:
#include<stdio.h>
#include<stdlib.h>
void main()
{
int* p;
int n,i=0;
scanf("%d",&n);
printf("请输入%d个数字:\n",n);
p=(int*)malloc(n*sizeof(int));
for(;i<n;i++)
{
scanf("%d",p+i);
}
printf("输入的数字有:");
for(i=0;i<n;i++)
printf("%d ",*(p+i));
puts("");
}
该程序完成了用指针定义N个整数数组的功能,如果有其它的类型只需要改变指针和malloc中的类型即可,有问题hi我

Ⅶ c语言如何定义未知个数的数组

用malloc函数。。。。
比如你要申请int型的未知个数数组。可以以下程序
#include<stdio.h>
#include<stdlib.h>

main()
{
int *p;
int n;
printf("请输入录入个数N:\n");
scanf("%d",&n);
p = (int *)malloc(n*sizeof(int));
//然后把*p当作数组指针用就可以了。。~~~~
}

Ⅷ c语言中不定长数组是指的变长数组吗

变长数组在C++中指的是集合(也叫容器)
如vector就是

C语言中,所有的数组都不定长,没有下标越界的概念,数组实质就是一个指针(由数组名充当),因此C语言中数组的长度没有任何意义
平常在C语言中讲的不定长数组,其实就是指针。比如char *p;这句就定义了一个不定长的字符数组p(长度任意)