totalnie wszystko mieszasz
Po PIERWSZE zmienne nigdy nie są lokowane od adresu zero ale ok to mniejszy błąd
Po DRUGIE to o czym piszesz to STERTA a nie obszar zmiennych globalnych tak jak ci się wydaje o ile w ogóle znasz podział pamięci w AVR
coś mi się wydaje, że niestety kompletnie na razie nic na ten temat nie wiesz więc tylko skrótowo:
Na początku pamięci są zmienne globalne
za zmiennymi globalnymi jest sterta (która może rosnąć w kierunku końca pamięci czyli stosu)
na końcu pamięci jest stos a stos może rosnąć w dół pamięci czyli w kierunku sterty
Ty jako użytkownik języka C nie masz wpływu na to jak działają algorytmy alokacji - i to kompletnie nie masz na to wpływu - ba nawet nie jest ci to potrzebne. Musisz tylko właśnie wiedzieć mniej więcej chociaż jak to działa zgodnie z tym super uproszczonym opisem który ci wyżej podałem.
To oczywista sprawa że podczas częstej alokacji i dealokacji - w ogóle nieprzemyślanej może ona przynieść niedoświadczonemu programiście w tak małych prockach z tak ograniczonymi zasobami tylko więcej problemów niż pożytku.
Jeśli już zaś piszesz o malloc czy realloc to chyba też powinieneś (tak mi się wydaje) zdawać sobie sprawę że te funkcje zwracają rezultat, który mówi ci czy alokacja albo realokacja pamięci się udała czy nie udała ... jeśli się nie udała to masz dość duży problem i widać że słabo panujesz nad tymi procesami. Nie masz żadnej funkcji która defragmentuje pamięć - to logika zawarta w funkcjach malloc i realloc pilnuje tego, żeby próbować robić to jak najlepiej i najkorzystniej a ty z kolei MUUUUSISZ - rozumiesz MUSISZ zawsze ale to zawsze sprawdzać rezultat takiej funkcji i wymyśleć sobie co zrobić w swoim programie gdy to się nie uda ...
Ja bym sobie na twoim miejscu odpuścił w ogóle zabawy malloc a szczególnie realloc w AVR'ach jeśli nie jesteś świadom tego co napisałem - o tym sprawdzaniu wyników i o umiejętności reakcji na błędy działania tych funkcji ... Uwierz mi w tak małych prockach da się programować bez malloc i realloc - korzystając mądrze ze zmiennych automatycznych i ew globalnych
------------------------ [ Dodano po: 2 minutach ]na naszym Kursie technik programowania:
https://akademia.atnel.pl/product/kurs- ... d-podstaw/poruszam szerzej dynamicznej alokacji pamięci właśnie bo w bluebooku o tym w ogóle nie pisałem
_________________
zapraszam na blog:
http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj
Kurs EAGLE ] [ mój kanał YT TV
www.youtube.com/mirekk36 ]