Creating Variable-size structs in C/C++ Posted on 2013-12-26 Edited on 2024-11-15 In C , c++ 這種技巧很常在Open Source的專案中看到,看了Arrays of Length Zero原本以為是GCC獨有Extensionm,後來發現Clang跟VC都能使用,記錄一下。 123456789101112struct datapacket{ int size; int data[0];];void f(){struct datapacket *pkt = malloc( sizeof(struct datapacket) + sizeof(int)*9 );/* further code . . . */} 這邊的data[0]不佔記憶體空間,因此sizeof(struct datapacket)大小相當於sizeof(int),而data就是一個記憶體指標,指向一塊連續的記憶體。