我有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循環
這讀起來更像C而不是C++。你確定你的意思是聲稱這是C++嗎? – jasedit 2009-02-10 13:08:06
這不是C. [size_is]是MS託管C++擴展。 – 2009-02-10 13:13:56