こんにちは私はここで、以下のシナリオ()動的サイズの構造を作成する方法
#define CONSTANT 10
struct structA{
int var1;
int var2[CONSTANT];
};
main(){
structA *varA = NULL;
int i;
/* some C code */
varA = mmap(0,..);
for(i = 0; i < CONSTANT; i++){
varA.var2[i] = /* C code */ ;
}
/* C code */
}
structA
のvar2
配列の要素数が一定ひいてはvarA.var2[i]
を直接参照することが可能である持っています。しかし、実行時に数値CONSTANT
を動的に決定する場合、構造定義をどのように変更する必要がありますか?その後することができますだけでmmap(NULL, sizeof(int) * (num + 1), ...)
struct structA{
int var1;
int var2[];
};
:
[GNU拡張機能](http://gcc.gnu.org/onlinedocs/gcc/Zero-Length.html)に注目することは重要です。 – cnicutar