https://obrazki.elektroda.pl/3743484600_... Witajcie moi drodzy Przedstawię tutaj mojego shielda (nakładkę) na Arduino UNO opartego o układ ENC424j600. Shield ten pozwala podłączyć Arduino do internetu bez żadnego lutowania, a nawet bez użycia kabelków i płytek stykowych. W temacie dam jedenaście pełnych przykładów jego użycia z moimi...
Jeśli _sbrk zwraca zero, to nie wiadomo co zrobi malloc. Zwracaj choć jakąś sensowną wartość z obszaru RAM. 4\/3!!
Witam, mam pytanie odnośnie obsługi sterty w arm'ach, używam gnuarm. Problem polega na tym, że funkcja malloc zwraca wartość 0. Słyszałem, że trzeba napisać własną funkcję caddr_t sbrk(int incr), jednak gdy to zrobię to jest ona dołączano do kodu wynikowego, jednak nigdy nie jest wywoływana, wywoływana jest tylko standardowa _sbrk. Moja mapa pamięci...
A czym by się różniło *Ptr[0] = 66; od Ptr[0] = 66; ? Przy pierwszym kompilator (GCC) wywala błąd, że "dereferencing 'void *' pointer" i "invalid use of void expression" Różnica jest zasadnicza *ptr[0] to jak **ptr czyli tablica dwu wymiarowa natomiast zapis ptr[0] rownoważny jest *prt czyli początek tablicy jedno wymiarowej. O problemach...
Racja, zgadzam się. Zmienna static bez łączności nie jest tworzona na stosie, żyje sobie od początku do końca programu, jedynie jej zasięg jest ograniczony do bloku lub funkcji, ale nadal nie rozumiem co powoduje że te zapisy są różne: W pierwszym przypadku jest najpierw (w czasie startu) inicjowana wartością zerową (NULL) a potem w funkcji (main)...
Nie przejrzałem całego kodu, ale od razu rzuca się w oczy błąd, na który kompilator powinien zwrócić Ci uwagę: double *oout = malloc(511 * sizeof(double)); // w C double *oout = new double[511]; // w C++
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]
Nie jest to żadna "druga" partia po 4kB... Spróbuj zrozumieć jak działa ten mechanizm a nie szukaj w nim dziury. malloc() wewnętrznie ma swój "pool" pamięci do przydziału, który domyślnie jest pusty. Jeśli prosisz o alokację i malloc() w swoim poolu nie ma wystarczającej ilości (lub odpowiedniego "układu") pamięci aby spełnić to żądanie, to prosi funkcję...
gaskoin Dzięki za odpowiedź! Bytes dochodzi do wartości 53381, dlaczego malloc nie zwraca NULL jeżeli nie może za alokować danego obszaru pamięci? Ten "test" nie jest na stałe w programie, został dodany tylko do sprawdzenia czy nie wycieka mi pamięć.
No nic, trza będzie sbrk sobie napisać Przecież już został napisany i udostępniony dawno temu... (; Jeżeli proc ląduje mi w HardFault'cie to chyba ta szansa jest duża Może warto sprawdzać wartości zwracane przez malloc()? <: 4\/3!!
Typ **ptr to wskaźnik do wskaźnika. Jest użyty ponieważ compress_jpeg zwraca w nim adres pamięci pod którym został zapisany obraz jpeg. Dlatego powinien być użyty w taki sposób: compress_jpeg(tablica_RGB, 64, 64, &tablica_jpeg); Druga sprawa to użyty tu output manager sam alokuje potrzebną pamięć, dlatego podajesz tylko sam wskaźnik, nie trzeba...
Nie wiem, nie ma to większego znaczenia mi się wydaję, bo i typ liczb całkowitych i typ adresowy ma po 4 bajty... przynajmniej tak pokazuje mi mój kompilator. sizeof (**pmacierz) sizeof (*pmacierz) sizeof (int) Wszystkie te funkcje zwracają wartość 4, więc przy obliczeniach nie sprawia to większego problemu, bo funkcja malloc() chce tylko konkretną...
Nie wiem czy dobrze rozumiem do czego dążysz ale możesz napisać coś takiego int funkcja(char *wsk) { *(wsk+3) = 2; return (int)*(wsk+3); } wywołanie char data Nie, nie o to mi chodziło. Tutaj odwołujesz się tylko do 4 elementu tablicy. Dodano po 1 Czyli to: Tym zapisem zwiększasz wartość elementów tablicy tak? A nie można było zapisać tego tak *wsk...
Google się popsuło? http://stackoverflow.com/questions/63809... W skrócie - brak deklaracji funkcji fdodaj(), więc kompilator przyjmuje domyślnie typ zwracany jako int. Nie przyglądałem się dokładnie programowi, ale jest kilka innych "ciekawych" rzeczy - np. po co przekazujesz do funkcji fdodaj() parametr...
Pisząc w C tego nie wiesz i wiedzieć nie będziesz (chyba, że zajrzysz w wygenerowany przez kompilator kod assemblera - co swoją drogą jest czasami przydatne). Nie wiem jak daleko działa REGISTER, ale prawdopodobnie kompilator patrzy bardziej na to jak na mocną sugestię niż 100% wymuszenie, bo co by zrobił gdybyś zrobił 20 zmiennych int jako REGISTER?...
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ć...
Owszem. Ale to makro jest definiowane co najmniej na dwa sposoby, np. w konkretnych aplikacjach przykładowych z STM. Czyli widać jasno że problem znany ludziom z STM i sami panują jakoś nad tym. Starasz się ich wybielić, co jest zupełnie niepotrzebnie, bo ich dokonania na przestrzeni lat pokazują, że o programowaniu zbyt wiele nie wiedzą. Przykładowo...
Dodatkowo, zdecyduj się, czy tablicę ByteOutput przydzielasz w funkcji wołającej i przekazujesz do rc4() (lepsze rozwiązanie), czy przydzielasz wewnatrz rc4() i zwracasz przez wskaźnik. Obecnie (z zakomentowaną funkcja malloc) wskaźnik temp pokazuje w krzaki (nie jest mu nadawana wartość początkowa), więc odwołania do niego z dużym prawdopodobieństwem...
Z góry dziękuje za wszelką okazaną pomoc, czy mógłby ktoś proszę sprawdzić ten kod? Program ma za zadanie stworzyć tablicę wskaźników. z których każdy wskazuje na obiekt o rozmiarze dokładnie odpowiadającym, rozmiarowi przechowywanego w nich ciągu znaków. W książce jest określone że wskaźnik użyty do przechowywania wartości zwracanej z malloc() powinien...
int *funkcja(int par1, int par2, int par3,int par4,int par5) { int wynik[2]; // jakieś tam obliczenia na przesłanych danych wynik[0]=2; wynik[1]=11; return wynik; } Na przyszkość: Zdecydowanie odradzam tego typu praktyki - tablica jest tworzona na stosie, z funkcji zwracasz wskaźnik, jeszcze poprawny, ale w...
a to?: #include <stdlib.h> void *malloc(size_t size); #include <stdio.h> FILE *fopen(const char *path, const char *mode); Wskaźnik można zwracać, dzieje sie tak wielu przypadkach, szczególnie w powyższych, wartosć NULL jest oznaką niepowodzenia. Oczywiście nie zmienia to faktu ze zgadzam sie z przedmówcami co do stosowania...
Powinieneś jeszcze pomyśleć o sytuacji, gdy masz pustą linię, ale przed znakiem nowej linii są biale znaki (spacje, tabulatory). Rozwiązanie które zaproponowałeś zadziała, ale tylko w przypadku znaku nowej linii na początku wiersza. Oto moja propozycja (fragment modułu parsującego plik konfiguracyjny demona, zarządzającego połączeniami ze sterowanikiem...
Witam. Rozkminiam sobie C i próbowałem dynamicznie zaalokować dwuwymiarową tablicę o rozmiarze 6*n. Dla n=1 jest ok, dla większych wartości - zwraca segmentation fault. Program ma ją wczytać i wypisać. Sprawdźcie: [syntax=c]#include<stdio.h> #include<stdlib.h> int main(void) { int n,i,j; scanf("%d",&n); int **tab = malloc(6 * sizeof...
Witam Napisałem sobie procedure dla ATmega2560, która w zalożeniu ma zwracać liczbę wolnej pamięci jaką może zająć stos. Niestety nie działa do końca tak jak bym sobie tego życzył... Nie rozumiem dlaczego wartosć __stack nie ulega zwiększeniu (a w zasadzie zmniejszeniu zgodnie z kierunkiem rozrastania sie stosu) wraz z alokowaniem porcji danych. Algorytm...
nie wklejaj kodu jako zwykły tekst bo fragment kodu [syntax=text]tab[i][/syntax] zostanie zinterpretowany jako kursywa, bo nawiasy kwadratowe w kodzie są interpretowane przez serwer i zostanie wyrenderowany tekst inny niż wkleiłeś. Miałeś wcześniej info od moderatora i się do tego dostosuj. w komentarzach napisałem co wypadałoby zmienić [syntax=c]#include...
strlen- zwraca ci długośc Stringa bez znaku terminującego string czyli 0x00. dodanie dwóch stringów powinno tworzyć stringa o 1 dłuższego niż wartość strlen jaka jest zwracana. Na ostatnim miejscu natomiast trzeba dodać znak terminujący 0x00. Funkcje IO w C (char * to string z C ) operuja na stringach opartych na tablicy charów zakonczonych 0x00 , brak...
Nie ma żadnych błędów kompilacji, tylko po uruchomieniu wyskakuje okno Unhandled exception, czyli program w ogole nie działa, zatrzymuje sie na samym poczatku funkcji usun_po_kluczu. Nie wiem gdzie leży blad. Polecenie do zadania: Celem zadania jest implementacja słownika w postaci listy dwukierunkowej (niecyklicznej): Implementacja nie może...
Używam visual studio :) znalazłem właśnie przed chwilką time.h oraz całą strukturę z opcjami, niestety nie wiem jak jej użyć. Link do angielskiej wiki: time_t curtime; struct tm *loctime; /* Get the current time. */ curtime = time (NULL); /* Convert it to local time representation. */ loctime = localtime (&curtime); loctime = loctime->tm_year;...
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 ponownie po dłuższej przerwie. W międzyczasie usunąłem jeszcze jeden zauważony błąd powodujący zawieszenie się odtwarzacza, a przedtem wyświetlenie śmieci na LCD. Błąd ten pojawiał się, gdy do odtwarzacza włożyło się nowo zakupioną lub pustą po formacie kartę SD. Błąd ten usunąłem modyfikując fragment funkcji main, jak poniżej: if (! (AT91F_PIO_GetInput(AT91C_BASE_P...
Witam, Program ten ma pobierac od uzytkownika liczbe elementow, a nastepnie umieszcza na liscie jednokierunkowej A taka liczbe elementow o losowych wartosciach calkowitych z przedzialu 0-999. Mam problem z napisaniem funkcji, ktora przeniesie do drugiej listy B co drugi element z listy A. Nie nalezy kopiowac wezlow listy, a jedynie przeniesc juz istniejace....
Witam, mam problem z kolejką, mianowicie dane nie wprowadzją się/ błąd nie mam pojęcia co jest nie tak a więc zwracam z prośbą o zerknięcie/nakierowanie mnie gdzie popełniłem błąd Pozdrawiam oraz z góry dziękuje #include <stdio.h> #include <conio.h> #include <stdlib.h> #include <string.h> struct typ_danych { char produkt[40];...
Witam Piszę program #include <stdio.h> #include <stdlib.h> #include <ctype.h> #include <math.h> #define bool short #define false 0 #define true 1 char *wsp; /* zmienna globalna przechowuje nazwy wsp??czynnik?w czyli litery a,b,.. */ /* ========================================... * alokuje pami?? dla...
Nie wiem jak się zabrać za funkcję wstawianieX -chodzi o wylosowanie i wstawienie do listy X wartosci z przedziału. Szczegoły w komentarzy przy funkcji. Jakies porady? [syntax=cpp] #define _CRT_SECURE_NO_WARNINGS #include "stdio.h" #include "stdlib.h" #include "time.h" typedef struct element { // // int klucz; // struktura pojedynczego elementu listy...
Witaj, Najpierw sam przetestuj kod- podstawowe bledy: -na gcc musialem dodac include <stdbool.h> - " " w include oznacza ze pliki naglowka znajduja sie w katalogu z aplikacja- zmien to na <> bo sa to standardowe pliki .h - masz nie zamknieta klamre w funkcji DodajOsobe, co powoduje blad - funkcja UsunOsobe nic nie zwraca (void), a pozniej...
Fragment przytocze, nic nowego. Checksums For verifying transmitted data of more than one byte length an 8 bit CRC is appended. The used CRC polynomial is as follows: X 8 + X 5 + X 4 + X 0 An example C-code of a generator with this polynomial is given in Annex A I tu C ktorego nie czaje..W kazdym razie jest tam tablica z danymi tak jak np w tym ( za...
Witam wszystkich serdecznie. Mam parę pytań dotyczących takich programów: 1. Kalkulator RPN (jest to plik źródłowy modułu): [syntax=c]#include "rpn.h" int push(elem** stos, int dana) { elem* pom =(elem*) malloc(sizeof(elem)); pom->dana=dana; pom->nast=*stos; *stos=pom; } int pop(elem ** stos) { int a=(*stos)->dana; elem* pom=(*stos)->nast;...
Zle mnie zrozumiałeś :), albo ja źle zapisałem :) _sbrk_r() razem z malloc działają :) Ale kolejno bo inaczej będzie chaos. printf ("Hej, ja działam!"); - wywołuje w pracy krokowej kolejno : 1. ssize_t _write_r ( struct _reent *r, int file, char *buf, size_t nbyte) 2. No source available for "_fflush_r() " 3. No source available for "_vfprintf_r() "...
Dzień dobry. Zwracam się z problemem zmiany kontekstu danych w freeRTOSie którego właściwie nie potrafię zdefiniować z nazwy, otóż : Mikrokontroler STM32F303 współpracuje z wyświetlaczem LCD ITM 400x160 - matryca 8000 bajtów (pamięć ekranu) zdefiniowana w pamięci RAM jest na bieżąco wysyłana do wyświetlacza w przerwaniu z priorytetem wyższym niż RTOS...
malloc zwracać wartość malloc przerwaniu malloc stm32
palnik gazowy gaśnie amica przenośna kuchenka indukcyjna tecno regulacja
wentylacja cofka lampowy odbiornik reakcyjny
Schemat elektryczny bojlera elektrycznego - kluczowe elementy i zasady Wiertarki 12V poniżej 1 kg do 500 zł - Bosch, DeWalt, Makita