打印
[MCU]

DSP上怎么定义一个可变长度的数组?

[复制链接]
990|36
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
yszong|  楼主 | 2020-2-8 15:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
有个压缩算法,在windows下运行是完全OK的,但移植到DSP下,遇到内存问题,下面我大概说下问题结构:
大概有结构如下
typedef struct _COMPRESSED_DATA_
{
  int width;
int height;
BYTE  m_Data[0];      // 压缩后数据
}COMPRESSEDDATA,PCOMPRESSEDDATA;

移植到CCS上编译,BYTE  m_Data[0]报错;
我改成BYTE  *m_Data; 编译通过,运行用监视器发现m_Data的地址显示
“cannot read memory at 0x00000001:memory is not present”

请问高手这个问题怎么解决啊?

使用特权

评论回复

相关帖子

沙发
dingy| | 2020-2-8 15:47 | 只看该作者
你还是别用变长的吧,定长的也应该够用了吧

使用特权

评论回复
板凳
pangb| | 2020-2-8 15:51 | 只看该作者
再说现在编译器支持C99的不多

使用特权

评论回复
地板
zyf部长| | 2020-2-8 15:56 | 只看该作者
程序在DSP下也是一样的,和普通C没有太大的区别,如果定义了指针,声明引用时必须初始化。

使用特权

评论回复
5
hanwe| | 2020-2-8 16:00 | 只看该作者
用固定长度的数组也有一个折中的办法,把数组长度定义一个比较大的值,然后可以用strlen()获取实际长度(不能用sizeof)。

使用特权

评论回复
6
wangpe| | 2020-2-8 16:03 | 只看该作者

程序是分块压缩,用来存储压缩数据,每块压缩出来的大小都是不相等的

使用特权

评论回复
7
gongche| | 2020-2-8 16:06 | 只看该作者

可变长度数是什么含义?

使用特权

评论回复
8
wenfen| | 2020-2-8 16:10 | 只看该作者

压缩算法是压缩数组吗?

使用特权

评论回复
9
wenfen| | 2020-2-8 16:15 | 只看该作者
这个的代码在哪里

使用特权

评论回复
10
songqian17| | 2020-2-8 16:17 | 只看该作者

更改数组的数据吧。

使用特权

评论回复
11
juventus9554| | 2020-2-8 16:20 | 只看该作者
struct _COMPRESSED_DATA_是什么含义?

使用特权

评论回复
12
xxrs| | 2020-2-8 16:23 | 只看该作者

这个可变数组不是自己定义的吗?

使用特权

评论回复
13
ousj| | 2020-2-8 16:26 | 只看该作者

怎么不使用外部存储器呢

使用特权

评论回复
14
kangzj| | 2020-2-8 16:29 | 只看该作者

每次使用的时候都初始化一下。

使用特权

评论回复
15
wangpe| | 2020-2-8 16:33 | 只看该作者
能够减小RAM的占用空间吗?

使用特权

评论回复
16
wangzsa| | 2020-2-8 16:36 | 只看该作者
压缩的实现方案呢?

使用特权

评论回复
17
yszong|  楼主 | 2020-2-8 16:40 | 只看该作者

嗯,预料中的结果,多谢大家啦

使用特权

评论回复
18
quickman| | 2020-2-15 18:00 | 只看该作者
C语言的数组是固定大小的  

使用特权

评论回复
19
gygp| | 2020-2-15 18:01 | 只看该作者
平常我们c编程的时候数据长度都是固定好的

使用特权

评论回复
20
iamaiqiyi| | 2020-2-15 18:01 | 只看该作者
语言可变长数组实现的方法是什么

使用特权

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

本版积分规则

830

主题

11379

帖子

4

粉丝