[应用相关] DSP上怎么定义一个可变长度的数组?

[复制链接]
823|15
 楼主| androidbus 发表于 2020-2-22 11:53 | 显示全部楼层 |阅读模式
有个压缩算法,在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”

请问高手这个问题怎么解决啊?
litengg 发表于 2020-2-22 15:42 | 显示全部楼层
你还是别用变长的吧,定长的也应该够用了吧
qiangweii 发表于 2020-2-22 15:51 | 显示全部楼层
再说现在编译器支持C99的不多。。
qiangweii 发表于 2020-2-22 15:52 | 显示全部楼层
为什么计算机上有了主板的BIOS,还需要一个DOS和windows?
xia00 发表于 2020-2-22 15:52 | 显示全部楼层
BIOS只是一个基本的最底层系统,无法支持应用运行
xia00 发表于 2020-2-22 15:53 | 显示全部楼层
程序在DSP下也是一样的,和普通C没有太大的区别,如果定义了指针,声明引用时必须初始化。
hfdy01 发表于 2020-2-22 15:55 | 显示全部楼层
用固定长度的数组也有一个折中的办法,把数组长度定义一个比较大的值,然后可以用strlen()获取实际长度(不能用sizeof)。
CallReceiver 发表于 2020-2-22 15:56 | 显示全部楼层
程序是分块压缩,用来存储压缩数据,每块压缩出来的大小都是不相等的。。
boy1990 发表于 2020-2-22 15:59 | 显示全部楼层
想问一下可变长度数是什么含义?
bbapple 发表于 2020-2-22 16:01 | 显示全部楼层
你这里的压缩算法是压缩数组吗?
handleMessage 发表于 2020-2-22 16:03 | 显示全部楼层
这个的代码在哪里?更改数组的数据吧。
zhouhuanの 发表于 2020-2-22 16:05 | 显示全部楼层
struct _COMPRESSED_DATA_是什么含义?
laozhongyi 发表于 2020-2-22 16:07 | 显示全部楼层
这个可变数组不是自己定义的吗?
Edisons 发表于 2020-2-22 16:09 | 显示全部楼层
怎么不使用外部存储器呢?
_gege 发表于 2020-2-22 16:11 | 显示全部楼层
在每次使用的时候都初始化一下。
Mozarts 发表于 2020-2-22 16:13 | 显示全部楼层
能够减小RAM的占用空间吗?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

181

主题

1597

帖子

3

粉丝
快速回复 在线客服 返回列表 返回顶部