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

2020-03-01 11:57发布

有个压缩算法,在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”

请问高手这个问题怎么解决啊?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
15条回答
litengg
1楼-- · 2020-03-01 13:50
你还是别用变长的吧,定长的也应该够用了吧
qiangweii
2楼-- · 2020-03-01 15:49
再说现在编译器支持C99的不多。。
qiangweii
3楼-- · 2020-03-01 16:54
 精彩回答 2  元偷偷看……
xia00
4楼-- · 2020-03-01 16:55
BIOS只是一个基本的最底层系统,无法支持应用运行
xia00
5楼-- · 2020-03-01 21:39
程序在DSP下也是一样的,和普通C没有太大的区别,如果定义了指针,声明引用时必须初始化。
hfdy01
6楼-- · 2020-03-02 00:32
用固定长度的数组也有一个折中的办法,把数组长度定义一个比较大的值,然后可以用strlen()获取实际长度(不能用sizeof)。

一周热门 更多>