私はSTRUCT1構造を以下のように宣言しています
typedef struct struct1 {
short int nbr_fe;
[size_is(nbr_fe)] STRUCT2 ptr_fe[*];
} STRUCT1;
STRUCT2もSTRUCT1内の別の構造です
そして、私はそれへのポインタを以下のように宣言しています
typedef [ptr] STRUCT1 * ptr;
そして、nbrRequestedに基づいてSTRUCT1の配列にメモリを割り当てる必要があります。これまでのところ、
STRUCT1 obj1;
memset((void*)&obj1, '\0' , sizeof(STRUCT1));
for(int i1=0;i1<(int)nbrRequested;i1++) {
STRUCT2 obj2;
memset((void*)&obj2, '\0' , sizeof(STRUCT2));
obj1.ptr_fe[i1] = obj2;
}
ptr ptr2;
ptr2 = &obj1;
ただし、nbrRequestedが500より大きい場合、ループは無限になり、アプリケーションはハングします。
forループを使用せずにメモリを割り当てるより良い方法はありますか