假設我有一個名爲Thing的結構。如果我想要一個「事物」的數組,但它沒有固定的大小(動態),我該如何爲它分配空間?我最初是否爲數組本身使用malloc空間,然後每次向它添加元素時都必須重新分配空間? 例如:c,malloc和realloc結構數組
struct Thing{
char *stuff;
char **morestuff;
int evenmorestuff;
};
Thing *thingarray;
thingarray = malloc(sizeof(Thing));
....
//And then allocating space for elements, which will get called an unknown amount of times
Thing j;
thingarray[count] = j;
如何設置的malloc和realloc能夠類型的東西儘可能多的元素添加到「物」的陣列?
'Thing' *確實*具有固定大小。它的大小是'char *'的大小。 –
我編輯了Thing結構來顯示它的更多屬性......它會是多大? –
我不會爲每個項目重新分配,每次都以一個常數因子增長數組。 –