4
是否有可能在一個結構中有兩個靈活大小的數組?C中的嵌套動態結構?
我知道我可以做類似下面
struct A {
int countB;
struct B[0];
}
但我的問題是,我們可以做一些像下面?
struct A {
int countB;
struct B[0];
int countC;
struct C[0];
}
如果是的話,我們如何得到countC的偏移量?
如果上述問題很難實現,還有沒有其他的方法可以解決這種情況?
您通常會在這裏使用動態分配,除非有某些原因不適用。 –
這是不可能的,'countC'的偏移無法在編譯時知道。零大小的數組無論如何都是GCC擴展,並且在C99中已經被實際的靈活大小的數組所取代,而語法略有不同。 –
最簡單的解決方法是爲數組使用數組指針,這些指針獨立於'struct'分配。 –