c语言数组长度不确定(c语言 不定长数组)

本文目录
- c语言 不定长数组
- C语言中普通数组在定义的时候不给出数组的具体长度,那么计算机是在运行期间为其分配长度的吗
- C语言定义数组但是数组长度不确定怎么处理
- C语言或c++不定长数组输入
- 用C语言定义一个字符串数组,数组元素个数及每个元素的长短都不确定,怎么求动态定义的方法呢
- c语言,输入一个长度不定的整型数组(1000位以内),我要怎么知道该数组的长度
- C 如何定义一个未知长度的数组
c语言 不定长数组
数组本身就是静态连续分配的,其有数据类型,也就是说是固定长度的,不定义就默认,你写的就是char
型的,长度为256;
动态数组就借助于指针了,char
*c
=
(char*)malloc(sizeof(char)
*
strlen);strlen是所定义的数组的维数,这样在定义后,在栈内分配,不用了一定要free(c),不然,系统一直占用!
希望可以帮到你,如果满意请采纳!
C语言中普通数组在定义的时候不给出数组的具体长度,那么计算机是在运行期间为其分配长度的吗
变长数组:数组长度为变量,在编译期间不能确定数组长度,要等到程序运行后,变量赋值后(数组定义语句不要写在变量赋值之前!),才能给数组分配内存。
变长数组本质还是静态数组(定义前大小可变,但定义后不能改变大小)。
要定义动态数组需要用malloc函数来申请内存。
C语言定义数组但是数组长度不确定怎么处理
假设数组存的是int型 那么 你先申请10个元素 int* a = (int*)malloc(sizeof(int)*10); 如果又来了个元素,那么你就可以 a=(int *)realloc(a,11*sizeof(int)); 求元素个数int i,n=1; for(i = 0;(a+i)!=NULL;i++) { ; } n=i+1;//n就是元素个数
C语言或c++不定长数组输入
可以用new分配内存。(对于c语言没有string可以使用malloc分配内存)
不用的时候delete掉(用malloc的用free)
比如说输入的时候在循环外定义一个char指针分配1内存;
在循环内先分配内存(长度为原先长度*2),再输入,循环判断的条件为后面还有没有输入。
建议使用getline函数设定最多读取长度,相当于分批读取,算是手动实现了string的输入吧
用C语言定义一个字符串数组,数组元素个数及每个元素的长短都不确定,怎么求动态定义的方法呢
你可以用动态分配内存的方法,
比如你要建立一个字符串数组:
char *str;
str=(char *)malloc(n);
n是变量,可以在确定了变量的值后再用以上代码分配内存,
而str字符串可以以一般数组的用法使用,比如
*str="hello";的话
str=’l’;
最后别忘了释放内存
free(str);
c语言,输入一个长度不定的整型数组(1000位以内),我要怎么知道该数组的长度
一般有两种方式。
1 第一个输入为数组长度。 比如输入 3 12 45 87
2 以特定输入为结束标记, 比如 以0,-1或者EOF作为结束标记。或者整行输入,以换行符为结束标记。
一般来说,在自动判题系统中,以EOF为结束, 或先输入长度, 是最为常见的两种方式。
C 如何定义一个未知长度的数组
定义一个未知长度的数组的方法:
一是用VLA可变长数组,例如:
int i = 10, j = 20;
double a; //定义VLA
VLA要c99才开始支持,需要使用c99编译器,例如gcc
二是使用动态数组,例如:
int m = 10, n = 20;
.........
double **p = ( double** )malloc( 10 * sizeof( double* ) );
for( i = 0; i 《 20; ++i )
p = ( double* )malloc( 20 * sizeof( double ) );
..........
p = 20.68;

更多文章:
avantage怎么设置为中文(Avantage安装丢失GIT)
2026年10月15日 03:00
activex控件未注册怎么办(登陆视频监控网页时提示activex控件未注册,怎么解决)
2026年10月14日 20:30
excel连接sql数据库教程(excel怎么连接sql数据库)
2026年10月14日 19:40






