我的 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 循环