Ⅰ 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(长度任意)