Kanał - ATNEL tech-forum
Wszystkie działy
Najnowsze wątki



Teraz jest 3 gru 2024, o 17:43


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 1 ] 
Autor Wiadomość
PostNapisane: 23 cze 2024, o 19:47 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27315
Lokalizacja: Szczecin
Pomógł: 1041

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 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
Wyświetl posty nie starsze niż:  Sortuj wg  
Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 1 ] 

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 2 gości


Nie możesz rozpoczynać nowych wątków
Nie możesz odpowiadać w wątkach
Nie możesz edytować swoich postów
Nie możesz usuwać swoich postów
Nie możesz dodawać załączników

Szukaj:
Skocz do:  
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO