數組零長度我正在重構一些舊的代碼,并發現很少的結構包含零長度數組(如下)。當然,由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
提交
取消