typedef struct {
int count;
int *items;
}set;
set* set_alloc(set *src, int num);
int set_insert(set *s, int num);
int main() {
set *A = NULL;
A = set_alloc(A, 0);
A = set_alloc(A, 1); //this and line below is part of inserting function
A->items[0] = 2;
system("pause");
}
set* set_alloc(set *src, int num) {
if (src == NULL && num == 0) {
set *src = (set*)malloc(sizeof(set));
src->count = 0;
src->items = NULL;
}
else {
src->count = num;
src->items = (int*)realloc(src->items, num*sizeof(int));
}
return src;
}
代碼陣列能夠針對該組內和對於該組本身項目陣列分配內存,然而,它未能realloc的項目的該陣列..我可以設置它的恆定大小,但我並不想繞過這個問題,因爲我已經在以前的項目中使用過它。重新分配內部結構上面
目前還不清楚'realloc''失敗'在這裏。請準確描述發生了什麼。 – SirDarius
[不要在C]中輸入'malloc'(和family)的結果(http://stackoverflow.com/a/605858/440558)。 –
另外,請注意不要將'realloc'的結果返回給您正在重新分配的指針。如果'realloc'失敗並返回'NULL'會怎麼樣?然後你鬆開原來的指針並且會有內存泄漏。 –