数组零长度我正在重构一些旧的代码,并发现很少的结构包含零长度数组(如下)。当然,由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的对象,它有一个指定长度的数组。
添加回答
举报
0/150
提交
取消