w kontruktorze lub poprzez zmienną publiczną.
Bardzo się mylisz pisząc, że macierze w ujęciu C++ to tablice dwuwymiarowe. Język C++ tym różni się od C, że wspiera programowanie orientowane obiektowo. Oczywiście, można z tego nie korzystać, ale wtedy jaka jest różnica między C a C++? Prawdopodobnie tylko w innym sposobie użycia biblioteki I/O. W ujęciu języka C++ macierz to oddzielna klasa: using...
Rozmawiamy teraz o Turbo Pascalu czy o Delphi/Free Pascal/Lazarus? Pascal (Turbo Pascal/Borland Pascal) nie ma możliwości deklarowania tablic bez podania rozmiaru (tablic dynamicznych). Natomiast Delphi, jak najbardziej. [syntax=delphi]program Project1; {$APPTYPE CONSOLE} uses SysUtils; type rekord = record dana1 : integer; dana2 : real; end; var tablica...
Gdybyś sprawdzał co zwraca fread , wiedziałbyś, że plik nie zawiera wszystkich danych. Do pliku (poza n) zapisujesz tylko ostatnią wyświetloną zmienną.
Masz w tym jeden błąd - po pierwszej instrukcji w pętli licznik będzie zawsze równy x-1. W związku z tym, pętlę musisz wykonywać tylko dopóki x>0. Zwracam tylko uwagę, że alokacja i zwalnianie pamięci zajmuje czas. Jeżeli chcesz zaimplementować coś na kształt stosu, to wydajniej od pomniejszania i powiększania zalokowanego obszaru jest alokować miejsce...
wsk wyrzuć poza definicję button3_Click (z button3_Click usuń tę linię): int *wsk; System::Void button3_Click(System::Object... sender, System::EventArgs^ e) { }
Upsss ale ze mnie ciezko myslacy czlowiek nie dopisalem ze chodzi o Delphi ...:( No i co z tego, powyższy przykład będzie działać także pod delphi, tylko ja bym proponował dodać do pliku jakiś nagłówek który opisuje ile danych jest w którym wymiarze.
Myślę że kolega chciał aby ! był w miejscu 3,4 ale tak się nie stało dlaczego? Otóż myślę że wystarczą 2 zmiany jedna to przed wydrukiem na ekranie dodaj spacje po \n w funkcji printf co ładnie zacznie drukować górny wiersz od znaku dale przez co później będzie ta tabela wyglądać jak tabela. A teraz główny błąd sprawdzasz czy jesteś w określonym miejscu...
Nie wyczytałem w treści zadania, że funkcja powinna zwalniać pamięć tablicy wejściowej - powiedziałbym, że to nie jest dobra praktyka. W każdym razie jeżeli założyłeś, że ta funkcja zwalnia wejściową tablicę, to nie możesz tego robić po raz drugi w main, zdecyduj się. Natomiast nigdzie nie zwalniasz tablicy wynikowej. Pilnuj też wcięć i formatowania,...
Jak utworzone tablice dynamiczne masz na mysli? Zdaje mi sie, ze od pewnego momentu w delphi sa dwa typy tablic dynamicznych. Takie, ktorym mozna zmieniac rozmiar oraz takie w stylu C z reczna alkokacja pamieci. W kazdym z tych przypadkow mozesz przeciez skopiowac dane po prostu, element do elementu, nagle jedna petla for. Poza tym, byc moze zadziala...
Witam! mam Takie zadanie."Napisz funkcję dokonującą zamian miejscami elementów o indeksach parzystych z elementami o indeksach nieparzystych(przykładowo:element 0 z 1, 1 z 2 , 2 z 3 , 4 z 5 itd) UWAGA Tablica powinna byc tworzona dynamicznie i nei moze byc deklarowana jako zmienna tylko jaka Wskaźnik." Przejrzałem instrukcje c++ i nigdzie nie znalazłem...
A jeśli if by się nie spełnił to zmienna by się nie utworzyła więc nie można by jej używać więc stwórcy kompilatorów czy tam danego języka przewidzieli to więc wywala błąd. UPDATE =>> Akurat to sobie musisz sam poczytać bo żeby Ci wszystko wytłumaczyć to by się zeszło (jednak odpowiem: tak, jest taki sposób choć są różne) i [url=http://edu.i-lo.tarnow.pl/inf/utils...
Chcesz przekazać po wywołaniu zdarzenia kontrolki, tablice kontrolek w której się ona znajduje do funkcji zaznaczenie_badan? Patrząc na logikę znalazłem przy okazji parę błędów w kodzie. Chyba że kod jest bardziej obszerny niż tu przedstawiłeś. W każdym bądź razie napisałem zgodnie z Twoim kodem takie coś ale nie wiem czy o to Ci chodziło: [syntax=vbnet]...
Pisano na kolanie, mogą być drobne problemy: [syntax=csharp] array<String^,2>^ names; OpenFileDialog^ dlg = gcnew OpenFileDialog; dlg->InitialDirectory = "c:\\"; dlg->Filter = "txt files (*.txt)|*.txt|All files (*.*)|*.*"; dlg->FilterIndex = 0; dlg->RestoreDirectory = true; if ( dlg->ShowDialog() == System::Windows::Forms::DialogResult::OK...
Jeśli będzie to tablica dynamiczna to z każdym wczytaniem znaku/wyrazu tablica może być powiększana (realloc) nie pamiętam jak dokładnie w c++ ale w c wczytywanie z pliku działa na funkcji fscanf
Tablica dynamiczna rekordów, tak samo jak to się robi z listami w pascalu.
private: int* Liczby; // ... Sumator::Sumator(int b) { Liczby = new int[b]; } Sumator::~Sumator() { delete[] Liczby; } Pozdrawiam, Dr.Vee
Kiedyś sporo pisałem w Pascalu i z tego co pamiętam nie ma tam możliwości deklarowania tablic o dynamicznie zmieniających się wymiarach. Pojęcie zmiennej/ tablicy dynamicznej w Pascalu istnieje, ale odnosi się do dynamicznego przydzielania/zwalniania pamięci dla zmiennych, realizowane przez parę procedur new i dispose.
Tak, bo w rozwiazaniu B masz tablice wskaznikow, i pod kazdy z tych wskaznikow mozesz wstawic jedna strukture (jak masz u siebie w kodzie tablica[0]=malloc(sizeof(osoba)); ) ale nic nie stoi na przeszkodzie aby podstawic tam cala tablice (tablica[0]=malloc(sizeof(osoba) * 10); ).
Jest sposób - tablica dynamiczna: [syntax=c]int rozmiar; cout << "Podaj rozmiar tablicy:" << endl; cin >> rozmiar; int * tablica = new int[rozmiar]; delete [] tablica;[/syntax]
#include <stdlib.h> #include <iostream> #include <vector> using namespace std; int main(int argc, char *argv[]) { vector<int> wek; wek.push_back(1); wek.push_back(2); wek.push_back(3); wek.push_back(4); cout << "elementów w kontenerze: " << wek.size()...
Zauważ, że tutaj: int ile_znakow = 0; unsigned char *cT1 = new unsigned char [ile_znakow]; unsigned char *cT2 = new unsigned char [ile_znakow]; alokujesz puste tablce! ile_znakow = z1 - pocz; // wyznacza długość i 1 tablicy cT1 // tutaj przypisuje odpowiednie fragmenty do dynamicznych tablic char // i konwertuję na int cT1[ile_znakow+1]...
Jedno z: [syntax=c]void tworz(int **tab, int rozmiar, int rodzaj_tab); void tworz(int *&tab, int rozmiar, int rodzaj_tab); int *tworz(int rozmiar, int rodzaj_tab);[/syntax]
[syntax=cpp] #include <iostream> void Foo1(void) { } int main (void) { typedef void (*pFoo)(); pFoo* tFoo = new pFoo[3]; //wiem, że musi się tu znaleźć określenie typu, ale jak ono będzie wyglądało dla wskaźnika na funkcję? tFoo[0] = Foo1; //tFoo[1] = Foo2; //tFoo[2] = Foo3; delete [] tFoo; return 0; } [/syntax]
Kiedy alokujesz dynamicznie pamięć funkcja alokuje trochę więcej niż potrzeba i "chowa" tam informacje o wielkości zaalokowanej pamięci, niestety nie istnieje funkcja w C która pozwoliła by ci dostać sie do tych extra-danych, oczywiście można by przeanalizować jak dana implementacja *alloc/free przechowuje meta-dane o rozmiarze bloku ale to traci trochę...
Spróbuj skorztystać z gotowych metod, do porównania ciągów znaków: [1] http://www.cppreference.com/wiki/string/... [2] http://www.java2s.com/Code/C/String/Comp...
[syntax=c]const char *str=s.c_str();[/syntax] lub: [syntax=c]char *str=&s[0];[/syntax]
oczywiście że tak double * funkcja(int x, int y) { double *tablica; int kk; ... kk=...; ... tablica=new double[kk]; return(tablica); } a potem musisz pamiętać żeby użyć delete
Dla tego dziwnego środowiska wszystko co globalne najlepiej deklarować w osobnym pliku lub klasie. Można także w głównym programie chyba po dyrektywie - [syntax=cpp]#pragma endregion[/syntax] Jako, że jest to tablica dynamiczna to użycie - [syntax=cpp]gcnew[/syntax] najlepiej wykonać gdzieś na początku np tutaj - [syntax=cpp]private: System::Void Form1_Load(System::Object^...
Jeśli ma być to macierz kwadratowa, to możesz zrobić macierz = new int[n * n]; odwołania do elementów - np. x = macierz[n * j + i]; na końcu delete[] macierz;
bezpośredniego skutku zwykle nie ma (sizeof(char)==1), ale zamiast -zmieniłem nazwy ... read na read1 Ja bym zmienił na znaczącą, oddająca intencję projektową. Coś w rodzaju read_and_trim albo read_from_line czy read_one_from_line Nazwa która wyznacza funkcjonalność pomaga (nawet w projekcie jednoosobowym) się zdyscyplinować. A nie ukrywajmy, funkcja...
Strumienie raczej nie służą do edycji danych, jak sama nazwa mówi. Aby móc manipulować danymi musisz wczytać je do stosownej struktury (np tablicy dynamicznej lub listy), następnie tam przykładowo wykonać zmianę kolejności i ponownie zapisać.
co jednak stoi na przeszkodzie, żeby tablicę taką deklarować tak: int w=10, k=10; int tab[w][k]; Tablica byłaby dynamiczna, gdyby dało się ją zadeklarować np. tak: extern unsigned w; extern unsigned h; int tab[w][h]; Może najpierw próbuj kompilować kod, który wysyłasz na forum? :) Pozdrawiam, Dr.Vee
Kolega wcześniej dobrze na pisał... Przecież jeśli masz tak [syntax=cpp]for(i=1;i<=IloscDanych;i+... to badasz elementy od indeksu 1 więć musi być tak: [syntax=cpp]for(i=0;i<IloscDanych;i++... A po za tym BARDZO WAŻNA uwaga nie ustala się tak rozmiaru tablicy;/ [syntax=cpp]int IloscDanych=0; //ilość różnych towarów magazynie char...
1. Tak to nam skonweruje liczbę zmiennoprzecinkową na stałoprzecinkową eg: 2.2->2. 2.Jest też dobre.
Restart komputera lub dysku i zobacz czy działa.
Na początek zapoznaj się z dokumentacją scanf. Jak chcesz pobrać hex to powinieneś użyć "%x" a nie "%d". Co ma właściwie robić funkcja zamiana? Pobiera tylko napis i go przetwarza ale nic nie zwraca. Poza tym masz błąd w char napis[]=; - powinieneś podać rozmiar tablicy lub użyć wskaźnika jeżeli chcesz mieć tablice dynamiczną.
W przypadku tablic niejawny wskaźnik jak i adres samej zmiennej to jedno i to samo. To po prostu nie jest przechowywane w innym miejscu. Inaczej by się sprawa miała z tablicą dynamiczną. Wtedy rezerwowany jest obszar pamięci, którego wskazanie musi być przechowywane w osobnym wskaźniku. W przypadku statycznych tablic - kompilator z góry zna położenie...
Już Ci napisałem w starym temacie jak ta metoda ma wyglądać (dodajUcznia)
Użyj np. ADO żeby połączyć się z bazą i wyciągnąć rekordy.[url=http://www.aspdev.org/asp/a... link w ASP, użyj funkcji GetRows() i skonstruuj odpowiedni connection string do połączania z bazą MS SQL
1. ^ to operator logiczny alternatywy rozłącznej. Co on tu robi? Raczej chodziło Ci o potęgowanie. Nie ma operatora potęgowania - trzeba użyć funkcji. Operator potęgowania w postaci ^ to, jeśli dobrze pamiętam, tylko Basic wykorzystywał (i Excel ;) ) 2. Rozmiar tablic dynamicznych podaje się w nawiasach kwadratowych. Nie wiem, co oznacza zapis stworzony...
Język C nie wspiera dynamicznych tablic wielowymiarowych. Masz dwie możliwości: 1- wykorzystać "tablicę tablic" czyli tablicę wskaźników; 2- użyć tablicy jednowymiarowej i liczyć indeksy "na piechotę". Twój przykład jest zbliżony do metody pierwszej, tzn. tabpix jest u Ciebie wskaźnikiem na wskaźnik, a ponieważ w C wskaźnik na element jest równoważny...
No niech będzie. void f(int *x) {//funkcja otrzymuje adres i pod ten adres "wpisuje" 12 *x = 12; } int x = 5; f(&x);// & oznacza pobierz adres zmiennej x i przekaż go do funkcji f //x jest = 12 a: void f(int *x) { x[2] = 12; *(x+5) = 15;//równoważny zapis } int x[10]; f(x);...
masz pomysł jak to zrobić? Jak przenieść wyfiltrowane ID z zrzutu 2 do kryteriów filtra w arkuszu 2? Przenieść bez kopiowania :D - nie :cry: Teoretycznie można by utworzyć tymczasową tablicę dynamiczną z wyfiltrowanymi danymi i poddać ją ponownemu filtrowaniu (w pamięci), ale i wówczas musisz tą tablicę wynikową (lub same wyniki sumowania) gdzieś zrzucić...
Nie bardzo wiem, z czym masz problem - z rozszerzaniem tablicy czy jej indeksowaniem?
Witam, Oto mój kod:[syntax=cpp]double* f_x1(double* tab, int n){ double* newTab = new double[n]; for(int i=0; i<n; i++){ double fx1= cos(3.14*tab[i]); newTab[i]=fx1; Form1->StringGrid1->Cells[12][i+1] = newTab[i]; } delete []tab; return newTab; } double* f_x2(double* tab, int n){ double* newTab = new double[n]; for(int i=0; i<n; i++){ double...
Liczyłem na wypowiedź h-doc w tym temacie z alokacją. To wszystko zależy w jakim trybie działa procek, jesli z rzeczywistym to jest ograniczenie do tablic 64kB i tylko sztuczkami matematycznymi i alokacją wielokrotną da się to obejść. A jeśli chodzi o systemy 32bit takie jaki linux czy windows (chyba od 98 w góre). To można chyba zaalokować do 4GB...
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 ;)
Z tego co tu można wyczytać ze schematu wynika, że ma zostać utworzona tablica dynamiczna Otóż niekoniecznie. Równie dobrze można założyć jakiś maksymalny rozmiar tablicy, którą allokuje się statycznie, a w jakiejś zmiennej przechowuje się aktualną ilość danych. Problemem tego zadania jest przede wszystkim określenie algorytmu oraz spodziewanego rezultatu...
Aha, oczywiście: TImage ImagesTable[10]; Można się potem pokusić o dynamiczną tablicę.
Prototyp:[syntax=c]void generuj(int** tab, size_t m, size_t n);[/syntax] Wywołanie:[syntax=c]generuj(tablica, m, n);[/syntax]
Stworzy nową tablicę, w zupełnie nowym miejscu pamięci, co spowoduje: 1.Stara tablica nadal będzie istnieć (i nie zostanie usunięta, bo nie masz już do niej adresu) 2.Nowa tablica będzie miała inne dane. Do stworzenia takiej dynamicznej tablicy jak ty chcesz można użyć: -linked list (listy połączonej czy jak to się zwie po polsku) -jest funkcja resize...
napisalem cos takiego: pa = NULL; delete pa;// dealokacja tablicy w pamieci i w tym momenscie nie ma problemow tylko... czy jest to prawidlowe?? To napewno jest nieprawidłowe bo tracisz wskaźnik to zaalokowanej pamięci.
Nie tyle chodzi mi o rozwiązanie problemu w STL-u, bo takie rozwiązanie już zaprogramowałem. Jest Blok i umieszczam w nim dane na bieżąco za pomocą wskaźników. Chciałbym zrobić coś co by działało jak tablice dynamiczne w c++. I zastanawiam się czy jest taka możliwość w stepie albo moze w winCC
Nie oblicza, bo wyrażenie tab_sin[n]=(int) (sin((double) (n/20*(2*M_PI))))... "wykłada się" przy rzutowaniu. A tak działa: tab_sin[n]=(int)(327... * sin((double)n*M_PI/10)... Pozdrawiam, Jacek
Ze względu na to, że nie masz już teraz dynamicznej tablicy [syntax=c]delete write_Files;[/syntax] powoduje dealokacje tej tablicy, co później robi za ciebie kompilator dając wyjątek że usuwasz coś czego już nie ma. Więc albo robisz dynamiczną tablicę wskaźników przez new: [syntax=c]std::fstream **write_Files = new std::fstream*[12]; delete[] write_Files;[/syntax]...
prosze o pomoc #include <cstdlib> #include <iostream> using namespace std; int main(int argc, char *argv[]) { int ile; cout<<"Podaj ile liczb chcesz wprowadzic"<<endl; cin>>ile; int *a=new int [ile]; int licznik; for(licznik=0;licznik<ile;licznik... { cout<<"Podaj...
Dopowiem jeszcze, że generalnie wszelkie błędy odwołań do pamięci (głównie wskaźniki i tablice dynamiczne) potrafią dawać zupełnie niezrozumiałe i nieoczekiwane rezultaty. Przykładowo błąd w jednym miejscu może powodować efekt w kodzie, który z pozoru zupełnie nie ma związku, a w pewnych przypadkach może wręcz dojść do podręcznikowego efektu motyla,...
A dynamiczne tworzenie tablicy int* pTablica; cout<<"Ile liczb"; cin>>n; pTablica=new int[n]; poźniej pętla do wprowasdzenia liczb nie zapomnij na koncu zwolnic pamieci delete [] pTablica;
To tak, tam faktycznie const też jest potraktowane jak zmienna. Wchodzi więc w grę tylko #define, czyli [syntax=cpp]#define f 4 #define n 1000 #define baza f*n[/syntax]
Teraz mam pytanie: Jak przypisać powiedzmy do 3 wiersza string albo jak skopiować do tegoż wiersza inna tablice char ? Funkcja [url=http://www.cplusplus.com/reference/... Twoim przyjacielem.
Założyłem stworzenie dwóch podwójnych tablic Dodano po 37 Zmieniłem nagłówek funkcji sortującej (mając na celu dostosowania typu danych do zadeklarowanych wcześniej tablic) [syntax=c] System::Void sort_Bubble(int *table, int size) [/syntax] na [syntax=c] System::Void sort_Bubble(array<System::Int64>^ table, System::Int64 size) [/syntax] Nadal...
Witam, mam problem z jedną z klas w moim programie. Otóż w konstruktorze ustalam wielkości tablic dynamicznych dwuwymiarowych i przypisuję do nich domyślne wartości. Do tego momentu wszystko działa poprawnie. Jednak gdy później losuję parę różnych od siebie liczb i chcę wpisać do elementu tablicy A x A o wylosowanym indeksie y jakąś wartość (pierwszym...
[syntax=delphi] begin setlength(tab,length(tab)+1); writeln('Podaj ',length(tab),' imie: '); readln(tab[length(tab)].imie); //<---- tu jest problem writeln('Podaj ',length(tab),' nazwisko: '); readln(tab[length(tab)].nazwisko); // <--- tu jest problem writeln; end; //... cala petla zla for i:=i+1 to length(tab) do begin writeln; writeln('Imie...
Sprawa jest bardzo prosta. [syntax=delphi]program Project1; {$APPTYPE CONSOLE} uses SysUtils; type obiekt = record zmienna1 : Real; zmienna2 : Byte; end; var tablica1 : array [1..1000, 1..1000] of Real; tablica2 : array [1..1000, 1..1000] of Byte; tablica3 : array [1..1000, 1..1000] of obiekt; obj : obiekt; begin writeln('tablica 1 : '+inttostr(1000*1000*sizeof(real)));...
No cóż, podane przeze mnie przykłady odnoszą się bezpośrednio do SQL czyli bazy danych. Insert - dodanie rekordu do bazy, Update - edycja rekordu, Delete - usunięcie rekordu, Select - wybranie interesujących dla nas rekordów na podstawie zadanych kryteriów Czyli to co masz zrobić, tyle że u Ciebie zamiast bazy danych (MySQL, MSSQL itp.) wykorzystana...
Dla rozjaśnienia tego przypadku proponuję lekturę: http://gcc.gnu.org/onlinedocs/gcc/Variab... Albert
Potrzebne zdalne połączenie gg 2325844 czekam Było trzeba odnaleźć gdzie mieściła się druga partycja po SCAN NTFS znaleźć można było gdzie są BOOT sektor drugiej partycji i bootcopy pierwszej reszta to kwestia już tylko odpowiedniego wpisu w MBR po wpisaniu wszystko zostało przywrócone.
Witam W Delphi7 działa następujący kod: procedure tworzenie_tablicy; var tablica: array of byte; ile_pol:byte; begin ile_pol=5; SetLength(tablica, ile_pol); end; Należy pamiętać że ilość pól musi być całkowita oraz tablica zaczyna się od indeksu 0 a kończy na indeksie ile_pol-1.
Proponuje zmienić podejście. Zamiast przy każdym razem tworzyć tablicę, utwórz ją raz, a kolejną tworzysz dopiero wtedy, kiedy na starej nie starcza miejsca: #include <cstring> rekord* tab; // tablica rekordów int tab_size = 0; // rozmiar tablicy int n = 0; // ilość elementów tablicy void dodaj(rekord rek) { if(n == tab_size)...
Mam taki problem. W jednej funkcji zaakolowuje tablice dynamiczna Wygląda to tak: Proszę, zgodnie z regulaminem pkt 11.1, o usunięcie słów PROBLEM lub/i POMOC z tytułu. Prośba dotyczy także wszelkich wariacji typu: kłopot, pomocy, problemy itd. Proszę pamiętać o używaniu znaczników code . - arnoldziq
Używasz dynamicznych tablic, a nigdzie nie masz przydzielonej pamięci dla nich (tym samym - określonego rozmiaru).
Której linii dotyczy komunikat? Coś mi się zdaje, że zamiast jeden.(*dane)=1; powinno być *jeden.dane=1;
No cóż.... 1. Gdzie w tym programie niby masz tablicę dynamiczną? 2.[syntax=cpp]nz=&nazd[i]; [/syntax]Ile wynosi i w tym momencie? 3.[syntax=cpp]for(i=1; i<=n; i++) [/syntax]Tablice w C/C++ są indeksowane od 0 do N-1. 4. Tablicę na nazwę masz jednowymiarową a potrzebujesz dwuwymiarową. W takim razie nz[i]/nazd[i] to i-ta litera napisu w nz (nazwy),...
też nie jest dobrze. Dla jednego wymiaru się zgadzam. Ale dla dwóch wymiarów jest źle - w tym przypadku nie będziesz mógł stosować dwóch indeksów tablicy. Dla dwóch wymiarów moim zdaniem powinno być tak: typedef long int VECTOR []; VECTOR *tab = (VECTOR*)malloc(sizeof(VECTOR)*yy);
Rzeczywiście, pomyliły mi się tablice dynamiczne ze statycznymi :) Po małych testach widzę, że: #include <stdio.h> int main(void) { char array2d[3][3]; printf(" array2d = 0x%08x\n", array2d); printf("&array2d = 0x%08x\n", &array2d); printf(" array2d[0] =...
A w której wersji Excela ma to działać? W nowej - z tablicami dynamicznymi (2021, 365), czy w starszej? Bez kolumn pomocniczych. W nowym Excelu: [syntax=text]=SUMA($F$2:$F$11*INDEKS($B$... W starym Excelu tablicowo: [syntax=text]=SUMA($F$2:$F$11*INDEKS($C$...
A masz wolne miejsce z przodu tablicy? Jeśli nie masz, to musisz całą tablicę dynamicznie przesunąć do przodu (nie wiem jaki masz rozmiar tablicy i ile danych).
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++) {...
Po pierwsze dałeś bardzo mały wycinek kodu, nie widać np z niego co jest w zmiennej k. Pętla: for (repr=1; total; repr++) nie ma końca i dla tego pewnie wywala błąd. Zamień ją np na: for (repr=0; rep<total; repr++)
Poprawiłem kod dla czytelności, dopisz sobie resztę. Nie kompilowałem ze względu na niekompletny kod, liczyłem na swoją wiedzę: [syntax=c]#include <ctype.h> #include <stdbool.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #define MAX 80 #define END "koniec" // struktura liczby calkowitej z iloscia cyfr do...
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...
Podpowiedź, tworzy się ją tak jak inne tablice dynamiczne.
Ta funkcja nic nie zmieni, bo parametry przekazujesz przez wartość. Jeśli chodzi o podmianę dla tablicy rekordów, to zasadniczo się tego nie zrobi. Jeśli tablica klas, to można podmieniać elementy w taki sposób (ale elementy, nie całą tablicę!). Jeśli chcesz całą tablicę podmienić - zrób z niej tablicę dynamiczną lub operuj na wskaźnikach do niej. type...
[syntax=javascript]function srednia(informatyka, angielski, fizyka, biologia, polski, matematyka, historia, sieci, wf) { var wynik = (informatyka+angielski+fizyka+biologia+p... / 9; return wynik; }[/syntax] Nie lepiej użyć tablicy :?: Takiej dynamicznej - dla dowolnej ilości liczb :!:
Trywialny błąd. W funkcji transponującej nie możesz jednocześnie odczytywać zmiennych z tablicy i od razu do tej samej tablicy zapisywać. Stwórz sobie drugą tablicę. np [syntax=c] void transponuj(int tab[N][M],int n, int m){ int i,j; if(n!=m){ printf("Macierzy nie da sie transponowac"); return 0;} printf("Macierz po transpozycji: \n"); for(i = 0; i...
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...
Bo wogóle pierwszy malloc nie może brać rozmiaru 6*sizeof(int) ale 6*sizeof(struct bazadanych *)
Witam. Mam pewien problem z funkcją malloc. Przeczytałem z różnych źródeł wiele informacji na jej temat jednak nie potrafię jej do końca zrozumieć. Otóż na początek otrzymałem takie zadanie : "Napisać program, który pozwoli zapamiętać w postaci tablicy struktur dane o 10 użytkownikach w postaci imię, nazwisko, data urodzenia. Przedstawić działanie...
A dlaczego miałoby by nie być? Jedna klasyczna tablica dynamiczna jednowymiarowa która przechowuje wskaźniki do innych tablic które zawierają konkretne wiersze tablicy.
Tak na wstępie to rzuca się w oczy, że beż żadnej kontroli zwalniasz w destruktorze tablicę, która wcale może nie być zainicjowana. Ponadto uważam, że klasy powinny maksymalnie separować interfejs i logikę, a u Ciebie klasa ma wszystko. Na dodatek klasy nie korzystają z siebie nawzajem. Ad rem, jesteś pewny, że podajesz właściwy numer sali w przypadku...
Niezupełnie, to jest przecież stary dobry nieużywany już Pascal. Tablicą dynamiczną nazywano tablicę utworzoną poprzez New. Jej rozmiar teoretycznie może się zmieniać, ale jeżeli jest użyta stała to zmienia się tylko na etapie kompilacji. Czyli zwykła tablica wskaźnikowa o rozmiarze N elementów (moim zdaniem). W Pascalu Borlanda miało to nawet pewien...
Kwiatów jest jeszcze więcej. Zamiast używać jakiejś skomplikowanej logiki przy sprawdzaniu obecności studentów, gnąc się i tnąc, używając dwóch for-ów z dynamiczną tablicą, prościej byłoby użyć mapy. Kod sprawdzania obecności skróciłby się do jednej linijki. Podobnie z dodawaniem i inicjalizacją tych wszystkich tablic.
Jest trzeba sie włamać do routera i przejrzeć dynamiczną tablice przydzielania protokołu DHCP tam beda podanie linie (powinny byś w formacie normalnego numeru urządzenia końcowego - telefonu) ale to nie jest legalne więdz nie ładnie tak robić...
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.
pierwsze moje skojarzenie, to mimo użycia C++ nijaki/proceduralny wzorzec. Zmienne globalne o niejasnym przeznaczeniu, i za dużym zakresie. Jeśli by mówić o jakimś wzorcu C, to poniżej jakości tego kodu. Totalny mix kodu "apliakacyjnego" (decyzje, dialogi) i "implementacyjnego" Ze wszech miar się nasuwa, aby metody [syntax=c]public class Database {...
No... Tworzysz tablicę dynamiczną i już. Jednak pewnie trzeba by założyć, że i tak z góry nie będziesz znał liczby punktów, lecz będą one dodawane (dla ułatwienia - w kolejności) do listy. Praca z tablicami dynamicznymi byłaby trudna, gdyż za każdym razem trzeba by ją rozszerzać. Zamiast tego zastosuj listę dynamiczną.
Deklaracja klasy: [syntax=cpp]class klasa { private: int *tablica; public: klasa(int N); }[/syntax] Konstruktor: [syntax=cpp]klasa::klasa(int n) { tablica = new int[n]; }[/syntax]
Użyj size(), aby poznać ile masz pracownik W DANEJ CHWILI :!:. Ta stała w stylu C jest zła i wcale nie powinna mieć miejsca. Ew. dodaj do company "getCurrentEmployeeCount" :D Java jest językiem dynamicznym, takież też powinny być tam tablice. Edit: [syntax=java]public static final int EMPLOYEES = 3;[/syntax] ogólnie ta linijka to złe myślenie, tablica...
Google: C++ tablice dynamiczne
dynamiczna tablica malloc tablica dynamiczna dynamiczna tablica obiektów
honda civic centralny zamek pompa magnum pilot zmiennym kodem
usuniecie konta grzanie basenu
Jak wyłączyć demo w piekarniku Amica EB-2602 z uszkodzonym zegarem DIEHL? Podłączenie elektryczne domofonu Ritto 7630 - jak to zrobić?