Nie ma lekko. Z bloku zaalokowanego przez malloc() nie zwolnisz sobie dowolnego kawałka. Kiedyś męczyłem coś takiego (edytor tekstu), to zrobiłem tak, że alokowałem sobie bufory powiedzmy po 10kB (to na Amidze jeszcze, tak że 10kB to dosć dużo było ;]). Podczas ładowania pliku kolejne bufory były zapełniane (ale nie do końca, algorytm starał się układać...
(at)herszt: jeśli jest tak, jak napisał Kolega arrevalk, to powinieneś ten usuwać to na co wskazuje wskaźnik przed przypisaniem mu kolejnego fragmentu pamięci. Jeśli nie robisz tego, to tworzysz w pamięci obszary, na które nic nie wskazuje, co oznacza, iż są to śmieci - nic na nie nie wskazuje, ale to jednak pamięć zaalokowana przez program, więc system...
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ś...
1) Czy dla zmiennych o rozmiarze poniżej 32bity zawsze przydzielane jest 4 bajtowy rozmiar pamięci? To kwestia wyrównania. Gdyby nie te int-y wcześniej nie byłoby problemu. A że są, to kompilator stara się by każda zmienna 32bitowa była umieszczona pod adresem podzielnym przez 4 - tak by się dało ją odczytać/zapisać w jednym cyklu. Wielkość całej struktury...
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]...
1. Pobierasz rozmiar tablicy przy użyciu scanf("%d", &rozmiar) zmienna rozmiar jest typu całkowitego. 2. Przydzielasz pamięć dla tablicy struktur. Zakładamy, że wcześniej zdefiniowałeś typ 'Struktura'. [syntax=c]Struktura* struktura = (Struktura*) malloc(sizeof(Struktura) * rozmiar); /* odwolujesz sie poprzez operator [] lub operacje na wskazniku bezposrednio...
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...
Skąd w takim razie w przypadku wykorzystania systemu argumenty trafiają na stos tworzony dynamicznie? W każdym przypadku zmienne lokalne/automatyczne trafiają na stos. To skąd ten stos się wziął jest tu zupełnie nieistotne. No i kompilator nie musi wcale specjalnie "być odpowiedzialny" za umieszczanie zmiennych na stosie - on po prostu korzysta ze...
No tak ;) Wskaźnik to nie to samo co tablica wskaźników :) W sumie jednak nie wiem czemu sobie kompilator tego nie potrafi przeliczyć ;) Przecież zna typ wskaźnika. No tak, tablica wskaźników nie musi być liniowa przecież. wskaźnk: [syntax=c]osoba * osobaMem fscanf(we, "%s", osobyMem->imie); //odczyt[/syntax] tablica wskażnków: [syntax=c]osoba * osobaMemT[];...
Coś naplątałeś... Aby uzywać malloca bez dziwnych errorów, musisz zadeklarować odpowiednią ilość miejsca na stertę . Co z tego, ze twoje zmienne zajmują niewiele ramu, skoro najpewniej ustawiles sobie parę kB sterty, i gdy przekroczysz te pare kB, program ci sie natychmiast wykrzaczy, bo oczywiście najpewniej nigdy nie sprawdzasz, czy malloc przypadkiem...
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...
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...
temp=(int*)malloc(sizeof(int)*(s.number-... Ile tu wynosi s.number - pewnie zero w tym momencie
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...
:evil: http://members.driverguide.com/driver/de...
Chodzi mi jak na stm zaimplementowałeś/skad wziales funkcje malloc/free.
No to chyba błąd w tym, że wezel_pomoc to tylko wskaźnik, któremu nigdzie nie przypisałeś pamięci (malloc) a odwołujesz się do jego skłądowych. W tym miejscu program się wywala.
If addr is NULL, then the kernel chooses the address at which to create the mapping; Wystarczy czytać...
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 :)
Przykłady często pokazują "jak" używać API, ale nie "kiedy"; w dodatku są tak proste (jak to przykłady) że użycie danego API nie jest potrzebne. Pule to zwyczajne alokatory pamięci. Używa się ich gdy planuje się alokację oraz zwalnianie pamięci. Dwa trochę sztuczne przykłady: - aplikacja z wątkami tworzonymi przy starcie i nie kończącymi się - pamięć...
Chcę móc dynamicznie alokować pamięć, której rozmiar jest z góry znany, a nie ograniczony stosem. A mółbyś tę myśl rozwinąć? Czy stos ma wielkosć nieznaną bo nie rozumiem.
Witam! Kłaniaja sie wskaźniki do tablic! Mówiąc szczegółowo: chcesz inicjować tablice dwuwymiarowe; w związku z tym inicjujesz tablicę wskaźników do tablic n-wymiarowych, którym też musisz przydzielić pamięć! Zdrowych i wesołych świąt! KG
myślę że jest to problem z windowsem , ewent. zmień jeszcze wersię sterownika na jakąś starszą dla pewności zmieniłbym jeszcze pamięć na inną
iostream to dla C++. Jeśli wykorzystałbyś C++ to możesz użyć vector-ów ułatwi sprawę. Wektory to zaawansowane tablice które mają zdolność do powiększania się automatycznie. Pozdraiwam A widzałeś je przeportowane na AVR? Druga rzecz, to bezsens ich stosowania w systemach z ograniczona ilością pamięci. W większości wypadków poszerzenie takiej tablicy...
#define int i32 typedef i32 (*TCpintd_InitFunction)(stru... Cpintd_Driver* instance); struct Cpintd_Driver { struct Cpintd_Device* instance; TCpintd_InitFunction init; }; struct Cpintd_Device { volatile struct Hardware* hardware; struct CSL_CpIntdCfgInfo configuration; }; Ktoś pomógłby mi zaalokować pamięć dla wskaźnika...
Proponuję na początek usunąć launcher i wszystko co z Nim związane. Potem usunąć wszystko co związane z javą. Następnie przeistalować Javę, na nowo zainstalować TLauncher. Masz błąd alokacji pamięci i jej braku. Prawdopodobnie brakuje RAM. ten laptop ma go "tylko 4GB" otwarte masz masę innych rzeczy w tle... Plus w TLauncher jakoś ustawia się ilość...
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...
[syntax=cpp] Book(const Book &book) { char * txt = "tekst do skopiowania"; // tekst do wstawienia pTitle = malloc(strlen(txt)); // alokacja pamięci strcat(book.pTitle, txt ); // kopiowanie tekstu do zaalokowanej pamięci } //destruktor ~Book(const Book &book) { free(pTitle); // zwolnienie pamięci } [/syntax] Tak z głowy kod, nie mam czasu teraz sprawdzić....
Zajmują jednak pamięć RAM. Czy jeśli przerobię te funkcje na obiekt to oszczędzę pamięć ? Jeżeli inicjacja obiektu danej klasy też nastąpi później, czyli alokacja pamięci dla tego obiektu. Nie wiem, czy "zaoszczędzisz", ale "przesuniesz" w czasie.
Poza tym po skompilowaniu Twojego kodu nie wyświetla średniej, która jednak musi być zawarta jako wynik działania programu. Wprowadź małą ilość, np 2 to zobaczysz że wypisze 3 punkty. http://ideone.com/VZ526V Pierwszy punkt wypisał się w wierszu z pytaniem, ostatni punkt to średnia.
W tym drugim przypadku procedura dostaje jako argument wartość adresu. *ret - to bajt wskazywany przez ten adres. Temu bajtowi (znakowi) próbujesz nadać wartość równą adresowi - nie zmieśżci się i nie ma to żadnego sensu. W pierwszym przypadku dostajesz jako argument adres, pod którym zapisany jest adres, i pod ten adres zapisujesz swój adres - to ma...
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]...
W C rzutowanie wartości zwracanej przez malloc nie jest potrzebne, a nawet przez niektórych uważane za szkodliwe: https://stackoverflow.com/questions/6058... W tym świetle wyrażenie wyglądało by tak: [syntax=c]int *x = malloc(sizeof *x);[/syntax]
Witam wszystkich zainteresowanych! Mam problem tego rodzaju: kompilator pokazuje mi taki oto komunikat: ::Can't find 0x1 words (0x1 withtotal) for psect intsave in segment BANK0 (error) ::Can't find 0x1 words (0x1 withtotal) for psect intsave in segment BANK0 (error) Co z tym zrobić? Pomocy!!
Troche mało informacji napisałeś. Może pamięć jest walnięta może dysk a może po prostu należało by jeszcze raz przegrać instalkę. Jak widzisz zbyt wiele tych może. W zasadzie przy uszkodzonej pamięci już w czsie "kopiowania plików" by się wywalał. Proponuje jeszcze raz zgrać instalkę i to najlepiej inną. Ewentualnie jak masz taką możliwość to podłączyć...
BAD_POOL_CALLER Ten błąd Stop występuje, kiedy proces lub sterownik trybu jądra próbuje przeprowadzić niedozwoloną alokację pamięci. Problem bywa często spowodowany przez błąd sterownika lub oprogramowania. Okazjonalnie jest powodowany przez awarię urządzenia sprzętowego. Co do tego 2 screenu Dodano po 11 http://support.microsoft.com/kb/331988/p... a...
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...
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 ;)
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];...
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...
A to nie jest tak, że z piku zczytujesz do strumienia potem do string stream i do piero możesz zrobić konwersje do typu całkowitego . Wiadomo alokujesz przez new dynamicznie wiec dopiero w programie wyskakuje błąd. :) Nie zagłebiałem sie w kod.
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ń,...
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...
Dzięki, ale dalej nic... Każda z ww. linijek powoduje "zamrożenie" procka (nie mam jeszcze JTAG'a, więc dokładnie nie powiem, co i jak, ale każda następna instrukcja już się nie wykonuje).
Witam Mam kilk apytan odnoscnie VMware 6. Sprzet taki: Intell QuadQ6660 2.4GHz pamiec 8GB i na tym WMware Workstation. 1 - czy jest jakas wersja na 64 system bo na stronie VM nie ma 2 - czy kazda maszyna wirtualna odpalana jest we wlasnym procesie i przestrzeni adresowej? Kazdy program pod Win dostaje 2GB (domyslnie) wirtualnego RAMu, czy w tym przypadku...
Ja zrobiłbym to tak: xor ax, ax mov ds, ax mov si, ax mov BYTE PTR ds:[si], 0FFh ; lub ds:[00] i pomijasz mov si, ax Powinno działać. Jesli chodzi o rozwiązanie problemu za pomocą instrukcji out to według mnie nie da rady. Pozdrawiam PiRoman2 dzieki za poprawke :-)
Pamięć SPI nie była ruszana To jeszcze nie świadczy o tym że jej zawartość się nie zmieniła. Nie zaszkodzi zrobić: mtestall - RAM read/write test A masz może alokację pamięci? Pod jakimi adresami mam przetestować RAM?
Nazwy obiektów mają kolosalny wpływ na rozmiar alokacji pamięci, dlatego ja używam conajwyżej dwuznakowych. Druga sprawa, jeżeli komunikacja z obuektem na wyświetlaczu odbywa sie tylko w jedną stronę (bez callback) to nie definuj obiektu w Nano tylko wysyłaj dane zwkłym Serial.println kończąc transmisje 3x FF, to również osczędzi Ci sporo pamięci. Polołudniu...
Wygeneruj plik *.map i sprawdź co leży w pamięci przed zmienną nadpisywaną (zakładam, że inna tablica) a następnie zobacz czy Ci indeksy "nie uciekły". Jeżeli operujesz na wskaźniku to łatwo cała pamięć "niepostrzeżenie" zamalować.
Ona już jest zmienną globalną i chyba nie ma sensu kombinować z tym. Ale oczywiście wszystko zależy od ciebie i tego co chcesz osiągnąć. A problem alokacji pamięci można rozwiązać prosto, jeśli nie chcesz używać alokacji dynamicznej - wystarczy do funkcji przekazać wskaźnik na wcześniej zaalokowaną pamięć, chociażby wskaźnik na zmienną lokalną, ale...
Po pierwsze proponowałbym w strukturze już nie używać wskaźników tylko od razu tablic typu char o zadanej długości, bo alokacja pamięci dla każdego elementu struktury jest uciążliwa i może prowadzić do błędów. Poza tym w przypadku kopiowania ciągów znaków należy użyć funkcji strcpy() zdefiniowanej w pliku nagłówkowym strings.h. No i po trzecie, w definicja...
Używanie alokacji pamięci jak pisze Freddie i metod opisanych przez Dr.Vee niestety jest tylko maskowaniem problemu, który wystąpi później. Jeśli są efekty uboczne kolejności wywołań konstruktorów to często i tak wracają gdy program się rozrośnie i rozbijemy go na biblioteki. Program nie chce działać, bo inicjalizacja bibliotek nastąpi w niewłaściwej...
witam mam problem w programie w C++. Program jest dość dużo, to wkleję tylko konkretne fragmenty. Efekt jest taki, że raz na 4-5 razy program przerywa działanie w miejscu zwalniania pamięci. Gdy pozostawiłem zwalnianie tylko jednej z macierzy (którejkolwiek) to błąd pozostał, gdy zwalnianie jest usunięte - jest ok. Liczba wierszy w alokacji jest równa...
(at)BlueDraco Rozumiem, że masz tutaj na myśli dynamiczną alokację pamięci. Niestety muszę Cie rozczarować. Istnieją alokatory pamięci, które przydzielają pamięć w czasie ograniczonym z góry (O(1)). Jest to matematycznie udowodnione. Więc spokojnie nadają się do systemów Real-Time. Zrozum, że nie każdy program mieści się w 32KB pamięci Flash (limit...
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.
Dzień dobry, Moim skromnym zdaniem sterownik klawiatury nie ma żadnego związku z problemem. Problem jest z alokacją pamięci ponad bazowe 640kB. Występuje konflikt, w którym niemałą rolę odgrywa BIOS (z jego ubogą konfiguracją). Po drugiej stronie jest albo sprzęt (karta graficzna), albo (co bardziej prawdopodobne) sterowniki EMS, czy inne polecenia...
Do nauki programowania (obiektowego) dobra jest Java, bo wymusza pewne rzeczy i uczy właściwego "sposobu myślenia", a nie ma w niej takich "przegięć" jak np. w ANSI-C, dzięki czemu można się skupić na algorytmie do zaimplementowania, zamiast sobie zaprzątać głowę np. alokacją pamięci. Na pewno nie Python, bo jedyne czego uczy to niechlujstwo. Zgadzam...
Dokładnie to samo pytanie co tu: https://www.elektroda.pl/rtvforum/viewto... Może po tylu latach jest to już bardziej popularny sprzęt i ktoś wie? W dokumentacji którą mam, w dziale "Alokacja pamięci" jest tabelka, gdzie są opisane razem jako 'podtrzymywane' i nie bardzo umiem znaleźć więcej na ten temat, a sterownik jest dla...
Sorry ~Radek , ale nie pokazuj proszę tego kodu jako przykładu rozwiązania tego zadania. 1) po co Ci w ogóle wsk_2? 1a) przydzielasz pamięć na tablicę, a jej nie zwalniasz. 2) czemu dynamiczna alokacja pamięci? Przecież rozmiar jest znany i zawsze równy 100. 3) program się zapętli, jeśli wpiszesz CTRL-Z i enter (pod windowsem). 4) średnią liczysz jako...
Trochę żeś przekombinował. Tyle alokacji pamięci aby wyłuskać jedną daną. wyciagam 6 danych z kazdego pakietu UDP - format jest niestabilny (JSON'o podobny) , stabilne sa tylko klucze alokacja pamieci ani fragmentacja mnie nie boli - jest zapas praca na typie char niewiele przyspieszyla wiec zostawilem String popatrze jak dokladnie te pakiety sa obslugiwane...
Nie znam się na tym konkretnym sofcie ale generalnie co w pamięci RAM to robi się szybciej. Co do zapychania - albo gdzieś jest do ustawienia parametr w którym deklarujesz ile RAM chcesz użyć, albo alokacja pamięci następuje "automagicznie" - jeśli owa automagia działa źle (czytaj - próbuje użyć więcej RAM niż w maszynie jest) to być może brakuje ci...
Problem z alokacją pamięci - alokujesz w funkcji "wypelnianie", wypełniasz, wyświetlasz po czym kasujesz, wracasz do main i znów chcesz wyświetlić. Proponuję zrobić alokację pamięci oraz zwalnianie w samej funkcji main. Poza tym masz błąd przy zwalnianiu pamięci - zgubiłeś [] przy "delete wsk;"
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
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,...
W logu nie widać żadnych problemów, ale może coś przegapiłem i może ktoś jeszcze po mnie przejrzy. Pamięci RAM nie brakuje. Procesor ani żaden pojedynczy rdzeń nie jest wykorzystany w 100%. Karta graficzna nie dobija do maksimum. Temperatury przyzwoite. Gra generuje ciut ponad 60 klatek na sekundę, monitor wyświetla 60 klatek na sekundę - zapewne ze...
Dopóki system nie korzysta z pliku wymiany, to ilość pamięci jest wystarczająca. Programy czyszczące RAM wpychają jej zawartość do WWAP, więc komputer zwalnia. Nie tak jak przy dyskach twardych, ale i tak dane są z 10 razy wolniej przepychane z SSD niż z RAM. Reinstalacja nie jest lekarstwem na zwyczaje użytkownika. Jeśli ten instaluje wszystko, co...
Wywołanie _sbrk() nie jest alokacją pamięci. 4\/3!!
Teoretycznie funkcja malloc() przy braku miejsca zwraca NULL- jednak nie używam dynamicznej alokacji pamięci także ten sposób odpada napisać funkcję kontrolującą stos, odpalić w symulatorze tylko jak taka funkcja miała by wyglądać coby informowała o nałożeniu się stosu na sekcje danych... jedyne rozwiązanie jakie mi przychodzi do głowy to właśnie porównywać...
Chyba pierwsza alokacja pamięci powinna być po wczytaniu k, nieprawdaż?
Te rekordy są stałej czy zmiennej długości? Czy znana jest ich ilość? Generalnie, przekazując z/do dll dane można to na kilka sposobów zrobić. Najczęściej preferowany przez MS, to odpytanie DLL o to, ile danych potrzebuje (jeśli nie jest to stały rozmiar), rezerwacja pamięci i przekazanie wskaźnika do tego obszaru, w którym DLL zapisuje, a caller sobie...
Możesz nad tym zapanować na kilka sposobów: 1. Taki sobie. Definiujesz tablicę o wielkości EEPROM, np. uint8_t ee[512] EEMEM, do komórek odwołujesz się normalnie przez indeksy, wszystko jest ok, tyle, że kompilator nie alokuje automatycznie zmiennych. 2. Robisz współdzieloną strukturę, która odzwierciedla pamięć EEPROM i co ważne, jest dołączana przy...
Najprawdopodobniej masz uszkodzoną pamięć i nie da sie tych alokacji już zapisać. Spróbuj zaprogramować inną kość i sprawdz czy zapisuje. Pozdrawiam.
Jako, że w zademonstrowanym programie nie ma dynamicznej alokacji pamięci, to nie możemy mówić o wyciekach pamięci. 1. Funkcja strtok2() nie robi tego, co ma w opisie, więc nie mogę stwierdzić, czy działa poprawnie, a raczej stwierdzam, że nie działa poprawnie. Dość dużo miesza tutaj "static src". Napraw albo funkcję, albo opis. 2. funkcja strtok2()...
A skąd pobrać wersję do GG 7.7? Bo wyskakują mi komunikaty o błędach w alokacji pamięci.
nie możesz sprawdzić czy new poprawnie przydzielił pamięć możesz jedynie złapać (czy nie złapać) wyjątek który poleci z "wnętrza" new. Kolega ma rację co do wartości zwracanej przez operator. Programowałem wieki temu i myli mi się obecnie C i C++. Kolega nie ma do końca racji co do wyjątku - rzucanie wyjątku po nieudanej operacji alokacji pamięci może...
Dzięki. Nie wziąłem pod uwagę, że oś y nie jest typu "czas", a jedynie "etykiety", więc nawet jeśli później dodasz coś dla tego samego znacznika czasu, to po prostu "cofnie się w czasie", ale dodając go po prawej stronie wykresu. Więc moje obliczenia "działającego zegara" były po prostu przesadzone... Ponieważ alokacja pamięci dla bufora pierścieniowego...
pamiętaj również o dynamicznej alokacji pamięci dla tej zmiennej (konieczne, jeśli nie znamy rozmiaru tablicy)
Wracjąc do Twojego problemu, to nie widzę dlaczego alokowanie na stercie miałoby być rozwiązaniem. Zapoznaj się ze szczegółami alokacji pamięci [url=http://69.204.223.228/~chromiteblue... jeśli jeszcze tego nie zrobiłeś. Jeśli piszesz w c, a tak mi się wydaje, to wogóle zapomnij o new/delete...
Jak zaktualizowałem sterownik przez Windows Update to problem z alokacją pamięci zniknął ale dalej nie moge zrobić stress testu przez błędny sterownik. Może nie do końca ten diag tool obsługuje karty radeona.
Ciemność widzę, ciemność.... Z tego co mi się przebija przez czarną szybkę, to możliwy jest problem związany z nadpisywaniem sobie danej - przykładowo TP wykorzystuje komórkę VW500, a Ty również z niej korzystasz w jakimś podprogramie no i wychodzi bryndza - najprawdopodobniej tutaj siedzi błąd. Przy skomplikowanych projektach dobrze jest sobie rozpisać...
Przecież istnieje coś takiego jak dynamiczna alokacja pamięci to raz a dwa to moja linijka przecież ma już znany rozmiar na etapie kompilacji.
Krótka rada: wyrzuć alokację pamięci poza pętle for/while, możesz na tym więcej zyskać niż na przestawianiu try/catch.
Proszę o pomoc bo zaczyna mi znowu para lecieć uszami. Nie wolno mi używać VLA. Mam stworzyć macierz trójkątną za pomocą malloc w której każdy element styka się z każdym, najprościej to wyjaśnić dla korelacji. [syntax=cpp] 0 5432 1 1Cena 1 xxxx 2Cena 2 xxx 3Cena 3 xx 4Cena 4 x 5Cena 5[/syntax] Tworzę strukturę z macierzą wskaźników: struct struktura{...
Z tego co pamiętam, to rejestry R są 16-bitowe, natomiast D 32-bitowe. Co do alokacji pamięci, to jest to chyba ta sama przestrzeń pamięci, jedyn różnica, to prezntacja zmiennych.
Z tego co widzę w listingu wysyłającym dane przez UART masz zmienną koniec_kolejki, która to nigdzie nie jest funkcji podana. Jeśli jest to zmienna globalna, to musisz na takie zmienne uważać... Masz także tablicę dynamiczną *bajty, której nigdzie nie widzę alokacji. Jesteś pewien, że alokujesz pamięć dla jej wskaźnika (malloc)? Jeśli tak, to na jaki...
To nie totolotek. Zabezpieczenie zadziała. Ale prawdą jest, że to zabezpieczenie aby alokacja pamięci nie pojechała po stosie, a nie przed nadmiernym wzrostem stosu. No właśnie, to takie w jedną stronę (a dla mnie "w pół strony"), bo jak na początku main() zaalokujesz dynamicznie całą wolną pamięć (wolną wg porównania z SP), to już pierwsza wywołana...
W takim razie pozostaje dynamiczna alokacja pamięci czyli opcja b. Język C++ oferuje operatory new i delete, natomiast w języku C pozostaje calloc, malloc, free i realloc.
Fakt, na fragmentacji można tutaj trochę zaoszczędzić, ale znacznie więcej na eliminacji narzutu alokacji kilku bloków - mowa o narzucie pamięciowym wprowadzanym przez alokator pamięci dla celów zarządzania blokami. Sądzę, że pamięć szybciej się skończy przy alokacji wielu małych bloków. Oczywiście to kwestia skali - mały blok to kilkunaście-kilkadziesiąt...
Mozesz to zrobic na kilka sposobow. 1. Zwrocenie wskaznika [syntax=c]typedef struct { int pole; }TwojaStruktura; TwojaStruktura* ModyfikujStrukture() { TwojaStruktura* ret = malloc(sizeof(TwojaStruktura)); ret->pole = 666; return ret; } int main(int argc, char* argv[]) { TwojaStruktura* zmodyfikowana = ModyfikujStrukture(); //nie zapomnij o zwolnieniu...
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...
BAD_POOL_HEADER - Problem z alokacją nagłówka puli w pamięci. Przyczyną może być sterownik, uszkodzenie dysku lub pamięci. Sprawdź dysk pod kątem występowania bad sektorów i jego SMART Pamięć memtestem Spróbuj uaktualnić sterownik grafiki
Witam! Czy sprintf wywołuje Twoją funkcję _sbrk? Może wstaw do niej jakieś flagi, że sprawdzić co zwraca funkcja. A może problem jest w alokacji pamięci. Zobacz czy działa Ci funkcja malloc. Też miałem problemy ze sprintf. Pozdrawiam Wojt
Potrzebuję w projekcie użyć dynamicznej alokacji pamięci, niestety malloc() zawsze zwraca mi NULL. Po powinienem zrobić aby malloc() działał poprawnie przy założeniach: - procesor STM32H743 - projekt generowany przy pomocy CubeMX (V6.12.0) - środowisko Keil MDK-ARM 5.36 - kompilator armcc V5.06 W projekcie dołączana biblioteka stdlib (include <stdlib.h>)...
Witam, Tak już robiłem i np. SRAM = .data + .bss wychodziło mi około 12kb a procek miał 32kb. Czyli to by oznaczało, że reszta to stos, czyli że te 20kb stosu jest za mało? Nie używam dynamicznej alokacji pamięci. Pozd
Nawet jeśli longjmp nie przywraca trybu procesora, chyba można to zrobić przed lub po skoku? RETI umożliwia jednoczesny powrót i włączenie przerwań. Gdyby chcieć zrobić to osobno, najpierw należałoby powrócić, a następnie włączyć przerwania. Normalnie nie jest to możliwe, bo powrót jest do nieustalonego z góry miejsca. Tutaj jest znane. Ja tu widzę...
Pierwsze trzy rzeczy o których pisze przemko nie mają wpływu na to działanie, natomiast ma rację dalej. Tylko, że to nie jest obiekt statyczny tylko automatyczny, musi być dynamiczna alokacja pamięci, żeby dane wskazywane przez wskaźniki nie traciły się po wykonaniu funkcji.
Szukaj raczej problemu w swoim kodzie. Między tymi wersjami środowisk zmienił się dostawca STL, drobna różnica w polityce alokacji pamięci i kawałek nieuważnego kodu mogą mieć takie skutki. Ewentualnie pokaż minimalne projekty testowe, inaczej trudno będzie pomóc.
Polecam też zainteresować się narzędziami takimi jak Valgrind oraz czymś co się nazywa "watchpoint" w debugerze którego korzystasz. W przypadku Valgrinda pozwoli ci to zobaczyć gdzie mogą być problemy z alokacją, i gdzie możesz gubić zaalokowaną pamięć poprzez niezwolnienie jej. Gorzej kiedy nie jest to problem alokacji, ale odnoszenia się pod złe adresy...
paweliw: dzięki za te linki, ale ja w cale nie chce uruchamiać xmsdsk'a pod XP chce to zrobić spod dyskitki startowej (czyli de'facto DOS'a) problem w tym, że dostaję komunukat "błąd alokacji pamięci". Pomóż mi rozwiązać ten problem.
może się wydawać, że zmienna lokalna i będzie miała przydzielona pamięć wiele razy, ale kompilator powinien sobie z tym poradzić i zrobić tylko jedną alokację przed pętlą. Oczywiście konstruktor zmiennej "i" (gdyby to była klasa) będzie za każdym razem uruchamiany. [syntax=c]int main() { // kod A while() { int i; // zmienna lokalna widoczna tylko w...
dynamiczny alokacja rozmiar alokacja dynamiczna alokacja
excel makro syntax error router talktalk sygnał dźwiękowy świateł bezpiecznik
amica piekarnik generator ozonu
Lokalizacja sygnalizatora akustycznego w Toyocie Yaris Jak rozebrać drukarkę Samsung SCX-3205 krok po kroku