C语言中怎样定义一个可变大小的数组呢?我想根据自己的需要输入数组的大小,谢谢啦

[复制链接]
查看11 | 回复5 | 2016-2-12 06:57:26 | 显示全部楼层 |阅读模式
定义动态数组,例如:#include #include int len;char *str;printf("输入数组的长度:");scanf("%d",&len);str=(char*)malloc(len*sizeof(char));为str分配分配len个字符大小的空间。
回复

使用道具 举报

千问 | 2016-2-12 06:57:26 | 显示全部楼层
通过指针和动态分配函数完成。如: int*p;
p=(int *)malloc(sizeof(int)*10);上述可申请大小为10的整型数组。当然也可以用链表实现。
回复

使用道具 举报

千问 | 2016-2-12 06:57:26 | 显示全部楼层
C99标准定义了可变长数组,不过也是有限的。VC并不支持,TC远老于C99就更不可能支持了,gcc支持。要真正的动态数组还是只能用指针,用malloc分配内存。关于可变长数组的描述见:http://blog.csdn.net/supermegaboy/archive/2009/11/23/4854921.aspx
回复

使用道具 举报

千问 | 2016-2-12 06:57:26 | 显示全部楼层
这个很简单,你不要给数组规定大小就可以了,比如 a[] 这个数组的大小就是你输入的多少来决定的
回复

使用道具 举报

千问 | 2016-2-12 06:57:26 | 显示全部楼层
常规定义是不可能的 呵呵不过可以动态内存分配用calloc函数建立连续空间段,相当于数组了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行