为了账号安全,请及时绑定邮箱和手机立即绑定

数组零长度

数组零长度

猛跑小猪 2019-07-27 10:07:25
数组零长度我正在重构一些旧的代码,并发现很少的结构包含零长度数组(如下)。当然,由pragma压制的警告,但我没有通过包含这种结构的“新”结构创建(错误2233)。数组'byData'用作指针,但为什么不使用指针呢?或长度为1的数组?当然,没有添加任何评论让我喜欢这个过程...任何使用这种东西的原因?重构那些的任何建议?struct someData{    int nData;    BYTE byData[0];}NB它是C ++,Windows XP,VS 2003
查看完整描述

3 回答

?
慕尼黑8549860

TA贡献1818条经验 获得超11个赞

是的,这是一个C-Hack。
要创建任何长度的数组:

struct someData* mallocSomeData(int size){
    struct someData*  result = (struct someData*)malloc(sizeof(struct someData) + size * sizeof(BYTE));
    if (result)
    {    result->nData = size;
    }
    return result;}

现在你有一个someData的对象,它有一个指定长度的数组。


查看完整回答
反对 回复 2019-07-27
  • 3 回答
  • 0 关注
  • 553 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信