#include <stdio.h>
#include <stdlib.h>
struct rib {
int from;
};
int main(void) {
int i =0;
while (1==1) {
struct rib
*incidental
= malloc(0); // оголошуємо масив об'єктів структур (поки нуль)
/* Get all incidental ribs to used vertices */
// щось робимо ........
// бачимо що нам треба додати в масив новий елемент => додаєм до вже виділеної
// пам'яті трохи місця на один елемент. Додаємо сам елемент.........
incidental
= (struct rib
*)realloc(incidental
, sizeof(struct rib
)); incidental[i].from = i+1;
// Далі ще щось робимо. Але тут цикл дійшов до закінчення ітерації. Нам треба звільнити це все від мотлоху.
// пішли на наступну ітерацію і отримали *** Error in `./main': free(): invalid next size (fast):
// Якщо без free, то матюкається в такому випадку на realloc
}
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxzdGRsaWIuaD4KCnN0cnVjdCByaWIgewoJaW50IGZyb207Cn07CgppbnQgbWFpbih2b2lkKSB7CglpbnQgaSA9MDsKCXdoaWxlICgxPT0xKSB7CiAgICAgICAgc3RydWN0IHJpYiAqaW5jaWRlbnRhbCA9IG1hbGxvYygwKTsgIC8vINC+0LPQvtC70L7RiNGD0ZTQvNC+INC80LDRgdC40LIg0L7QsSfRlNC60YLRltCyINGB0YLRgNGD0LrRgtGD0YAgKNC/0L7QutC4INC90YPQu9GMKQogCiAgICAgICAgLyogR2V0IGFsbCBpbmNpZGVudGFsIHJpYnMgdG8gdXNlZCB2ZXJ0aWNlcyAqLwogICAgICAgIC8vINGJ0L7RgdGMINGA0L7QsdC40LzQviAuLi4uLi4uLgogICAgICAgIC8vINCx0LDRh9C40LzQviDRidC+INC90LDQvCDRgtGA0LXQsdCwINC00L7QtNCw0YLQuCDQsiDQvNCw0YHQuNCyINC90L7QstC40Lkg0LXQu9C10LzQtdC90YIgPT4g0LTQvtC00LDRlNC8INC00L4g0LLQttC1INCy0LjQtNGW0LvQtdC90L7RlyAKICAgICAgICAvLyDQv9Cw0Lwn0Y/RgtGWINGC0YDQvtGF0Lgg0LzRltGB0YbRjyDQvdCwINC+0LTQuNC9INC10LvQtdC80LXQvdGCLiDQlNC+0LTQsNGU0LzQviDRgdCw0Lwg0LXQu9C10LzQtdC90YIuLi4uLi4uLi4KICAgICAgICAgICAgICAgICAgICBpbmNpZGVudGFsID0gKHN0cnVjdCByaWIqKXJlYWxsb2MoaW5jaWRlbnRhbCwgc2l6ZW9mKHN0cnVjdCByaWIpKTsKICAgICAgICAgICAgICAgICAgICBpbmNpZGVudGFsW2ldLmZyb20gPSBpKzE7CiAKICAgICAgICAvLyDQlNCw0LvRliDRidC1INGJ0L7RgdGMINGA0L7QsdC40LzQvi4g0JDQu9C1INGC0YPRgiDRhtC40LrQuyDQtNGW0LnRiNC+0LIg0LTQviDQt9Cw0LrRltC90YfQtdC90L3RjyDRltGC0LXRgNCw0YbRltGXLiDQndCw0Lwg0YLRgNC10LHQsCDQt9Cy0ZbQu9GM0L3QuNGC0Lgg0YbQtSDQstGB0LUg0LLRltC0INC80L7RgtC70L7RhdGDLgogICAgICAgIGZyZWUoaW5jaWRlbnRhbCk7CiAKICAgICAgICAvLyDQv9GW0YjQu9C4INC90LAg0L3QsNGB0YLRg9C/0L3RgyDRltGC0LXRgNCw0YbRltGOINGWINC+0YLRgNC40LzQsNC70LggKioqIEVycm9yIGluIGAuL21haW4nOiBmcmVlKCk6IGludmFsaWQgbmV4dCBzaXplIChmYXN0KTogCiAgICAgICAgLy8g0K/QutGJ0L4g0LHQtdC3IGZyZWUsINGC0L4g0LzQsNGC0Y7QutCw0ZTRgtGM0YHRjyDQsiDRgtCw0LrQvtC80YMg0LLQuNC/0LDQtNC60YMg0L3QsCByZWFsbG9jCiAgICB9CglyZXR1cm4gMDsKfQo=