Teraz pozostało mi przenieść projekt z stm32 na lm3s, ponieważ zajmuję się tym w wolnym czasie od pracy, to efektem podzielę się pewnie za kilka dni. To naprawdę nie jest dużo roboty, generalnie (pomijając detale typu zmiana nazw plików czy nazwy projektu) trzeba zrobić mniej więcej "aż" tyle: 1. poprawić tablicę wektorów (to i tak byś miał kiedyś...
Ponieważ wskaźnik na tab[ww][kk] jest nieokreślony. [syntax=c]Matrix(int _w, int _k) : w(_w), k(_k) { int **tab = new int *[w]; for (size_t i = 0; i < w; i++) { tab[i] = new int [k]; // +++++++++++++++++ for (size_t j = 0; j < k; k++) { tab[i][j] = 0; } // +++++++++++++++++ } ObjectCount++; }[/syntax] [syntax=c]#include <iostream> class...
w wielu jezykach programista jest zwolniony z tego zmartwienia przez standardowe biblioteki. podejrzewam, ze wlasnie jakies rozwiazanie podobne do przedstawionego przez Ciebie jest stosowane do rozwiazania tego problemu. jedyna optymalizacja, jaka mi przychodzi teraz do glowy, to dynamiczna modyfikacja rozmiaru "kesow". Np: kazdy nastepny "kes" dodawany...
Bo wogóle pierwszy malloc nie może brać rozmiaru 6*sizeof(int) ale 6*sizeof(struct bazadanych *)
jeżeli masz listę jednokierunkową, to najpierw musisz odnaleźć element poprzedzający ten, który musisz usunąć. Resztę masz opisaną tu: http://www.elektroda.pl/rtvforum/topic90...
Dla dynamicznej alokacji pamięci ilość pamięci w systemie nie ma większego znaczenia. Nie ma granicy powyżej której ma ona sens, a poniżej już nie. Wszystko zależy od zastosowań. Tu kolega alokuje niewielkie ilości pamięci i być może ma to sens. IMHO dynamiczna alokacja pamięci jest demonizowana - jeśli wszystko robi się jak należy to jest to tak samo...
Wyłącz antywirusa i sprawdź czy tak samo laguje. Jeżeli program uruchamiasz pod Windowsem, to miej na uwadze że Windows pedantycznie troszczy się o ilość wolnej pamięci, alokując ją na dysku, zamiast w ram'ie, choć wolnego ramu jest jeszcze od groma. Jeżeli masz conajmniej 1GB ramu (dobra granica dla XP), to wyłączenie "pliku wymiany" na wszystkich...
W zasadzie tak nie należy robić. Dwie gwiazdki obok siebie to już jest podejrzane, a le trzy.... ;) Ale jeżeli chodzi tylko o gimnastykę z językiem C, to trzeba to zrobić tak: Dodano po 28 Tak, taka jest składania. Zmienna tablica wewnątrz funkcji funkcja() jest wskaźnikiem na zmienną tablica z funkcji main() . Trochę mylące jest użycie tej samej nazwy...
Co do powyższego to owszem, wskaźnik to po prostu komórka pamięci przechowująca adres do innej komórki, gdy dokonamy inkrementacji (++) lub dekrementacji (--) zmienimy zawartość wskaźnika, adres wskaźnika jest nadal ten sam. [syntax=c]int a[]={1, 2, 3}; int *b=&a; &a -operator adresu do zmiennej a ------------------------------------ Pamięć [0x00|0x01|0x02|0x03|0x04]...
Witam! A'propos "przytyku" Wszystko zawarłem w pierwszej odpowiedzi. Koledzy chyba posto-nabijacze ? A to fragment cytowanej, Twojej pierwszej odpowiedzi: 1. Pobierasz rozmiar tablicy przy użyciu scanf("%d", &rozmiar) zmienna rozmiar jest typu całkowitego. Skoro pobiera się rozmiar tablicy przy pomocy funkcji scanf od razu zakładam, że rozmiar tablicy...
Której linii dotyczy komunikat? Coś mi się zdaje, że zamiast jeden.(*dane)=1; powinno być *jeden.dane=1;
Chodzi mi jak na stm zaimplementowałeś/skad wziales funkcje malloc/free.
witam, MAm przygotować aplikację z danej tematyki: 1.Podstawowe elementy języka – zmienne i ich typy, operatory, instrukcje sterujące, pętle, funkcje, tablice. 2.Tworzenie typów złożonych –struktury, unie, tablice struktur, wyliczenia. 3.Przetwarzanie strumieniowe – operacje na plikach tekstowych 4.Przetwarzanie strumieniowe –...
If addr is NULL, then the kernel chooses the address at which to create the mapping; Wystarczy czytać...
Tak, dobrze to pokazałeś. Najłatwiej sobie rozkminiać takie problemy w symulatorze. Masz na wszystko podgląd. Dodano po 3 Moim prywatnym zdaniem jednak używanie dynamicznej alokacji pamięci w uC, który tej pamięci ma pojedyncze KiB, jest pozbawione jakiegokolwiek sensu i jest proszeniem się o błędy. A jakie znaczenie ma ilość dostępnej pamięci? Jeśli...
Poza stosem w SRAMie masz jeszcze przynajmniej: - stertę - dynamiczna alokacja (malloc, new) - sekcję data - wszelkie globalne i statyczne zmienne inicjowane jakąś wartością - sekcję bss - jw. ale zerowane przy starcie programu poza tym możesz sobie tworzyć własne sekcje, latać wskaźnikiem po pamięci i cokolwiek Ci przyjdzie do głowy. Alokowanie dużej...
ale czy znajdziesz biblioteke z malloc dla avr?? jakos mi sie wydawalo zawsze, ze avr nie udostepniaja opcji dynamicznej alokacji pamieci... a sama alokacja, to bedzie np cos takiego... int rows = 6, cols = 5; double **a; a = malloc (rows * sizeof (double *)); if(!a) abort(); for (i = 0; i < rows; i++) {...
1. Czemu deklarujesz tablicę n-elementową, a potem podajesz elementy od indeksu 1 (drugiego) elementu? 2. Czemu przypisujesz na dzień dobry do max wartość pierwszego elementu dopiero co utworzonej tablicy? 3. Czemu max masz w typie int, a tablicę w double i teraz porównujesz i przypisujesz miedzy tymi typami?
Nie rozumiem Twojego problemu, albo używasz klasyczny tablic dynamicznych i dostępu element=tablica[i][j], albo używasz jak w tym przykładzie wzorca vector i korzystasz z dokumentacji do niego.
Witam Mam problem z programem, ponieważ, nie mam pojęcia dlaczego się wysypuje, wszystko wygląda ok. Na razie program ma stworzyć 2 tablice, jedną z nich wyzerować i wyświetlić. Stosowałem calloc, ale też się program wysypuje. Proszę o pomoc Pozdrawiam [syntax=c]#include<stdio.h> #include<stdlib.h> #define SIZE_X 80 #define SIZE_Y 22 void...
https://obrazki.elektroda.pl/4743015900_... Przetwarzanie grafiki jest z natury dość zasobożerne. Popularne moduły oferujące wyświetlacz dotykowy sterowany przez ESP32 starają się zaradzić temu poprzez integrację zewnętrznej kości pamięci PSRAM, ale przerzucenie na niej LVGLa może wymagać dodatkowej konfiguracji oraz może wiązać się...
Czy na pewno potrzebna jest ci dynamiczna alokacja pamięci? Rozważ poniższy przykład: [syntax=c]#include <stdio.h> int TABLICA[10][4]; void copy_tab(int dst[], int src[], int size) { for (int i = 0; i < size; i++) dst[i] = src[i]; } int main() { int TAB[4] = { 1, 2, 3, 4 }; copy_tab(TABLICA[3], TAB, 4); for (int i = 0; i < 4; i++) printf("TABLICA[3][%d]...
Mam problem z dynamicznym zaalokowaniem pamięci dla tablicy struktur, przy użyciu malloc. Próbowałem na kilka sposobów, ale najczęsciej kompilator wywala błąd "variable sized object may not be initialized". [syntax=c]#include <stdio.h> #include <stdlib.h> #include <time.h> struct Punkt{ float x; float y; }srodkowy; float random01(){...
Witam. Chce zadeklarowac sobie tablice 2-wymiarową, dla ktorej znam tylko jeden wymiar na początku programu. Logiczne wiec, że skorzystam z operatora new. Oto mój kod: char **tablica; for(i=0; i < zmienna; i++) { tablica[i] = new char[3]; } Program kompiluje się poprawnie, ale potem po wywołaniu - zawiesza się. Uzywam...
A możecie mi jeszcze powiedzieć jak ustawić: HeapSize, CSTACK i RSTACK, bo coś chyba zamieszałem i mi się zawiesza KIT?? Nie ma na to prostej odpowiedzi. CSTACK to w zależności od tego ile najwięcej zmiennych lokalnych musi być przechowywana naraz. Zdaje sie że też wchodzą do niego zmienne typu STATIC i tym podobne. RSTACK służy do przechowywania adresów...
Zgadza się :) To jest alokacja dynamiczna pamięci dla tablicy indices, ale na stosie, tzw. VLA. O ile pamiętam, napisane było też, aby stosować to do tablic o małym łącznym rozmiarze ;)
Mała podpowiedź: nie przypisałeś niczego do Solution::Matrix, a próbujesz się do niej odwoływać w ShowSolution, ba, w destruktorze próbujesz ją kasować. ;-) –––– Swoją drogą: aby znajdywać takie błędy polecam statyczne analizatory kodu: [url=http://css.csail.mit.edu/stack/]STA... i [url=http://cppcheck.sourceforge.net/]cp...
Witam Mam problem z programem, który tworzy bazę danych. Wkleję tylko kawałek programu, z którym mam problem. Funkcja ma dynamicznie tworzyć, wpisy do bazy danych. Kompilator wyrzuca mi " 'return' : 'baza *' differs in levels of indirection from 'int' ". Bardzo proszę o pomoc. [syntax=c]struct baza{ char imie[30]; char nazwisko[30]; int numer; }; int...
Nie ma takiej zależności. Jeśli nie korzystasz z dynamicznej alokacji pamięci to możesz to bardzo zgrubnie oszacować po ilości zmiennych automatycznych (lokalnych), a szczególnie tablic. To co czyni takie oszacowanie szczególnie trudnym to określenie stopnia zagnieżdżenia funkcji - bo to zajmuje sporo pamięci na stosie. A zależy to od ilości przerwań,...
Alokowanie pamięci na stercie ma tę zaletę, że możesz tę pamięć potem zwolnić, ale alokacja trochę kosztuje. Jeśli masz zamiar zaalokować pamięć i nigdy jej nie dealokować to lepiej nie kombinuj tylko zadeklaruj ją "normalnie". Jeśli zacznie Ci brakować pamięci tzn, że źle napisałeś program :)
Witam , mam problem z przekształceniem programu aby tablice byly utworzone w pamieci dynamicznej. Jak ktos mial by jaks pomysl albo podpowiedział co i jak bede wdzięczny. (program prosty ma dodawać dwie macierze do siebie) [syntax=csharp] #include <stdio.h> #include <stdlib.h> int main(int argc, char *argv[]) { int tab1[0][0]; int tab2[0][0];...
witam, Mam mały problem do rozwiązania. Z wejścia czytam dowolnie dużą ilość łańcuchów znaków, każdy dowolnie długi. Może się zdarzyć że np. będą 2 łańcuchy nie dłuższe niż 10 znaków, a może się zdażyć że będzie np. 20 łancuchów po 20 znaków (hipotetycznie). Myślałem żeby rozwiązać to na wskaźnikach i dynamicznej alokacji pamięci, np. tak jak poniżej....
Rozbudowuję moją aplikację o dynamiczną alokacje pamięci - prosty stos FIFO. fifo.c Warning implicit declaration of function 'push' - jak to interpretować? kompilator myśli, że deklaruje po raz kolejny funkcje push? Na tym etapie z warningami, stos FIFO działa poprawnie. Kiedy próbuję dodać na początek pliku main.c , bibliotekę fifo.h , zaraz otrzymuje...
Profilaktycznie zwiększyłem rozmiary stosów do 4096B i zapomniałem sprawdzić ponownie zużycie RAMu. Jeśli nie używasz przerwań (a pewnie na razie nie używasz), to na prawdę rozmiar innych stosów niż user_system może być równy zero. Jeśli zaś używasz, to 4kB na stos przerwań również jest przesadą - przecież to zwykle jedna, krótka funkcja. Może w porywach...
Jeżeli mówiąc "po staremu" masz na myśli statyczne alokowanie, to jest spora różnica. To jest alokowanie statyczne, czyli po wyjściu z zakresu funkcji obiekt jest automatycznie usuwany: [syntax=cpp] void f() { Obiekt a; } [/syntax] Lecz jeżeli masz funkcję która ma przetworzyć nieokreśloną z góry (w czasie pisania programu) ilość danych, to używasz...
Może użyjesz kontenera vector z STL (Standardowa biblioteka wzorców), problem dynamicznej alokacji bedziesz miał z głowy. #include <vector> using namespace std; int main() { vector <twoj typ> baza; baza.push_back(twoj_obiekt); itd... }
Przenalizuj sobie ten kod. Staraj się stosować podobne formatowanie kodu - zwiększa czytelność. [syntax=c]#include<stdio.h> #include<stdlib.h> int main(void) { int n,i,j; int **tab = NULL; printf("%s", "Podaj liczbe wierszy : "); scanf("%d",&n); tab = (int**) malloc(n * sizeof(int*)); for(i = 0; i < n; i++) { tab[i] = (int*) malloc(sizeof(int)...
Heh znowu mnie ktos ubiegl a tak ladnie sie rozpisywalem :P
Witam. Mam wykonać polecenie: 'Stworzyć strukturę zawierającą dynamicznie zaalokowaną tablicę dwuwymiarową i jej wymiary. Tablica dwuwymiarowa jest reprezentowana przez odpowiedni wskaźnik.' Oprócz tego jeszcze zwolnić zaalokowaną pamięć. Oto co napisałem.. byłbym wdzięczny gdyby ktoś sprawdził czy dobrze to zrobiłem i ewentualnie pokazał mi błąd. #include...
Jak sam zauważyłeś, dynamiczna alokacja pamięci nie ma sensu we włącznikach światła i sterownikach windy. Nie będzie też miała sensu w zdalnym pilocie do bramy i w czajniku. Za to w systemie który jest podłączony do ethernetu i przyjmuje tyle połączeń na ile pozwoli mu dostępna aktualnie pamięć - czemu by nie? W sumie to nawet nie wiem po co dyskutuję...
[syntax=c] #include<stdio.h> #include<stdlib.h> int *funkcja(int wiersze, int kolumny); void wypisz(int *tab, int wiersze, int kolumny); int main(void){ int *tab = funkcja(4,6); wypisz(tab,4,6); return 0; } int *funkcja(int wiersze, int kolumny){ int *p = (int)malloc(wiersze*kolumny*sizeof(int))... int i ,j ; int indeks; for(j = 0; j< kolumny;j++){...
Dynamiczna alokacja jest po to aby na sztywno nie rezerwować całego obszaru LCD tylko w zależności od potrzeb, jak ci się nie podoba rezerwacja dynamiczna powołaj tablice jako globalna i przekazuj funkcji. Ja nie narzekam na kod wszystko się fajnie analizuje. Dodano po 56 czyli jak dam +1 to też zadziała? Dodano po 15 A jeszcze jedna sprawa czy linia...
Potrzebuję w projekcie użyć dynamicznej alokacji pamięci, niestety malloc() zawsze zwraca mi NULL. 1. Proponuję nie używać malloc w projektach embedded. 2. Najprawdoposobniej sbrk jest tylko "kadłubkowa" dla zapernienia linkowania się kodu. Co zrobić: 1. Jeżeli się już uparłeś na "malloc" to proponował bym freeRTOS-a z jego implementacją heap4.c albo...
Z dynamiczną alokacją pamięci na mikrokontrolerach trzeba uważać, często powoduje problemy. Niektóre kompilatory nie dopuszczają opcji dynamicznej alokacji pamięci, nawet nie umożliwiają wywołania rekurencji (model reentrant i non-reentrant). Szczególnie dla uc 8-bitowych.
Witam, ponownie mam problem z dynamiczną alokacją pamięci i pobieraniem danych od użytkownika. Działanie programu powinno wyglądać tak: 1. Użytkownik wpisuje na przykład 1 2 3; 4 5 6 ;7 8 9; 2. program dynamicznie alokuje w pamięci tablicę 3x3 o zawartości 1 2 3 4 5 6 7 8 9 Dodatkowe założenia: użytkownik może wpisać DOWOLNĄ ilość spacji pomiędzy wartościami...
(at)BlueDraco W takim wypadku weź dopisz do Wiki coś o dynamicznej alokacji bo zapomnieli napisać: https://en.wikipedia.org/wiki/Object-ori... Edit: Na stronie o dynamicznej alokacji równiez zapomnieli wspomnieć OOP: https://en.wikipedia.org/wiki/C_dynamic_...
Zaczekaj bo nie wiem czy dobrze zrozumiałem. Lista przeważnie składa się ze wskaźnika do następnego elementu tego samego typu (w tym wypadku moim zdaniem 2 bajty) oraz wskaźnika do danych (jakieś struktury, moim zdaniem w tym wypadku 2 bajty) co daje razem 4 bajty. Chyba, że ma kolega na myśli wbudowanie wskaźnika do następnego elementu w strukturze...
polecenia które mają na początku "f" dotyczą plików - od "file". Plik to oczywiście nie plik na dysku, to po prostu struktura, która zawiera w sobie informacje jak do niej pisać. Można takie struktury tworzyć dla LCD, 1wire i czego dusza zapragnie, ale moim zdaniem nie ma co mieszać. Przy użyciu zwykłego printf piszesz do pliku który nazywa się stdout,...
A jak wygląda zarządzanie pamięcią w tym RTOSie? Czy można bez przeszkód używać dynamicznej alokacji nie obawiając się HardFault co kilka minut?
1188015 mam problem z następującym kodem i zadanie z nim związane a dokładnie zadanie polega na zestrzeleniu wszystkich wrogich statków następowało przejście na kolejny poziom, na którym jest więcej statków. Wykorzystać dynamiczną alokację pamięci. mam z tym problem ponieważ nie wiem jak użyć malloca i realloca.Pozdrawiam
alokacja dynamiczny alokacja pamięć jednostka alokacja
zapowietrzenie silnika mercedes zamiennik cdm12 rezystancja izolacji silnika
turbina wiatrowa daikin altherma
Podłączenie czujnika Halla w Saeco Incanto Lokalizacja bezpiecznika oświetlenia kabiny w Mitsubishi Outlander II