c语言 不定长数组

Python014

c语言 不定长数组,第1张

数组本身就是静态连续分配的,其有数据类型,也就是说是固定长度的,不定义就默认,你写的就是char

型的,长度为256;

动态数组就借助于指针了,char

*c

=

(char*)malloc(sizeof(char)

*

strlen)strlen是所定义的数组的维数,这样在定义后,在栈内分配,不用了一定要free(c),不然,系统一直占用!

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

不可以,数组在创建时长度已经确定了,而且创建后也无法更改数组的长度,楼上说的malloc动态申请的内存也是已确定的,你都不能在 不破坏原有数据的情况下改变其大小。

那怎么储存未知大小的数据呢,在储存后怎样能随意的对其添加、更改、删除、查找等一系列操作呢?只用简单的数组肯定不行,需要用到别的数据结构,如链表、二叉树等等,总有一款适合你。在大家学到数据结构与算法的时候 ,一切难题都将迎刃而解。

最后补充一点,楼上有人说数组的长度不能用变量来确定,这是错误的。 C中有 变长数组 的概念呀(c99标准),“变长”的意思就是 可以用变量来指定数组的长度,而数组一旦创建 长度就无法变化了,而且变量必须赋值在先,变长数组才能创建。某些人不能因为无法正确的设置编译器支持c99标准,而否定了 变长数组 这个用法。