打印

问个关于C语言数组的问题

[复制链接]
1963|13
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
szn1423|  楼主 | 2013-6-25 11:27 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
ayb_ice| | 2013-6-25 13:25 | 只看该作者
只能自已处理了,用动态内存分配吧

使用特权

评论回复
板凳
上班老迟到| | 2013-6-25 13:41 | 只看该作者
你这样定义呀 int a[]

使用特权

评论回复
地板
huangxz| | 2013-6-25 14:30 | 只看该作者
数组大小在编译完成以后是固定的,你不可以在运行态的时候去减。
要实现你那个功能,你自己建个指针去移动就可以了。

使用特权

评论回复
5
xiaox314| | 2013-6-25 17:08 | 只看该作者
定义数组一定要指定大小的!给你这么大的空间,你不想用这么多自己控制好就行!反正它就在哪里,你自己看着办!!!

使用特权

评论回复
6
zhaofy521| | 2013-6-25 17:14 | 只看该作者
编译的时候,数组元素个数是一个定值

使用特权

评论回复
7
qingqiu647| | 2013-6-25 17:20 | 只看该作者
C语言,在定义数组时,必须要指定长度,如果你需要的内存不能固定长度,可以动态申请内存

使用特权

评论回复
8
qingqiu647| | 2013-6-25 17:20 | 只看该作者
C语言,在定义数组时,必须要指定长度,如果你需要的内存不能固定长度,可以动态申请内存

使用特权

评论回复
9
chunk| | 2013-6-25 17:36 | 只看该作者
试试GNU C编译器,看看有没有动态数组。

使用特权

评论回复
10
sunhq02| | 2013-6-26 09:10 | 只看该作者
语言本身不支持动态数组
但是可以通过间接方式做到

建立一个结构体
用来保存动态数组的首地址指针和长度信息

在需要的时候,通过malloc分配一块内存
动态数组的原内容如果需要保存的话,使用memcpy复制到新分配的内存中
释放原数组的内存空间
将新内存空间和长度信息加到动态数组结构体中

使用特权

评论回复
11
lyyyuna| | 2013-6-26 10:07 | 只看该作者
动态数组,用malloc等等,自己维护数据结构。这样做容易出错,不过在单片机上这种动态数组的需求应该不大。

使用特权

评论回复
12
金则立则翔| | 2013-6-26 13:40 | 只看该作者
很好!

使用特权

评论回复
13
logokfu| | 2013-6-26 13:43 | 只看该作者
上班老迟到 发表于 2013-6-25 13:41  你这样定义呀 int a[]

这样不叫动态分配空间,你不写大小,只是编译器会在编译阶段替你计算出大小。真正程序运行过程中空间是不会变的。

使用特权

评论回复
14
logokfu| | 2013-6-26 13:45 | 只看该作者
用链表操作吧

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

251

主题

462

帖子

4

粉丝