Kurs C++ odc. 10: Wskaźniki. Dynamiczne alokowanie pamięci

Поділитися
Вставка
  • Опубліковано 16 гру 2024

КОМЕНТАРІ • 746

  • @Unknown-rd8nb
    @Unknown-rd8nb 4 роки тому +275

    Nawet przy krojeniu cebuli nie wylałem tylu łez co podczas nauki C++.

  • @MrMShady
    @MrMShady 2 роки тому +68

    Jako, ze kurs nadal po tylu latach jest oglądany;
    rada dla tych ktorzy sie gubią, ktorej sam kiedys potrzebowalem przy wskaznikach:
    Nic na sile, jezeli nie wchodzi odpusc i pojdz dalej, po to aby wrocic tu pozniej. Przerob nawet caly kurs podstawowy, nawet kurs obiektowy. Zupelnie inaczej spojrzysz na wskazniki i referencje gdy oswoisz sie troche z programowaniem. Miej z tylu glowy "zrozumiem to w swoim czasie/wroce za jakis czas" a siłą rzeczy tak wlasnie bedzie.
    Przyznam, ze sam osobiscie mialem problemy z tematem alokowania pamieci, wskaznikow i referencji, az do czasu rozpoczecia pracy jako programista. Uzywalem tego co prawda bo to konieczne, znalem cala teorie, wiedzialem co, kiedy, jak i dlaczego ale robilem to troche po omacku, to musi zaskoczyc i tyle.

    • @Tobix320
      @Tobix320 7 місяців тому +2

      chyba nie mam innego wyboru niż posłuchanie się twojej rady dzięki ;)

    • @bartomiej6824
      @bartomiej6824 3 місяці тому

      Dokladnie tak jest, ze wszytskim trudniejszym w programowaniu, sam wiem z doswiadczenia, kolega ma swieta racje! :D

    • @MinecraftKarol2005
      @MinecraftKarol2005 21 день тому +1

      Ale jutro kolos

  • @sylwesterpudelski7471
    @sylwesterpudelski7471 4 роки тому +285

    Jeżeli ktoś ma problem z error: cast from 'int' to ' *int' loses precision [ -fpermisive] to należy otworzyć w
    CodeBlocks ->Settings->Compiler->Other Compiler Options-> I tam w tym polu po prostu wpisujemy -fpermissive
    I będzie działało ;) Zajęło mi to kilka dni, żeby naprawić :D

    • @xetoyt8780
      @xetoyt8780 4 роки тому

      wow dzięki :>

    • @Iaur
      @Iaur 3 роки тому +46

      mi tylko pare minut znalezienie Twojego komentarza, dzieki za oszczedzony czas :)

    • @sebencjusz22
      @sebencjusz22 3 роки тому +1

      DZIĘKUJĘ

    • @MrTheDanthe
      @MrTheDanthe 3 роки тому +1

      a ktoś wie o co chodzi z tym błędem dlaczego w ogóle się pojawia ?

    • @Ev3r0x
      @Ev3r0x 3 роки тому +43

      @@MrTheDanthe dlatego, że kompilujesz na platforme 64bit to wskaźnik na int ma 64bit, ale sam int już 32bit. Kompilator cie ostrzega dlatego, że przy próbie rzutowania dostaniesz jakieś śmieci a nie faktyczną wartość. A co to tego rozwiązania to bez sensu jest uciszać kompilator, wystarczy zamienić int na jakiś typ 64bit, np long long, inptr_t, int64_t, itp.

  • @vito24222
    @vito24222 8 років тому +133

    Nie do końca, ale już zaczynam rozumieć. Musiałem obejrzeć ten film z parę razy, porobić odpowiednie notatki, pobrać materiały z bloga i tam po znakach // dodać odpowiednie komentarze. Pomogło.
    Nie przejmujcie się jeżeli nie rozumiecie, ważne aby próbować :D

  • @graczu88
    @graczu88 9 років тому +247

    Panie Mirosławie ;] Jestem zachwycony w jaki sposób przedstawia Pan zagadnienia programowania. Prosto, czytelnie i na prawdę zrozumiale. Chapeau bas!
    Gdyby laboratoria na moich studiach wyglądałoby w ten sposób to pewnie nie przenosiłbym się na grafikę.
    Oświata powinna zainteresować się tymi materiałami, a nauczyciel/wykładowca byłby tylko od sprawdzania wyników.
    Pozdrawiam i życzę dalszych sukcesów ;]

    • @heniekhenkowski411
      @heniekhenkowski411 6 років тому +4

      Gdzie studiowałeś? Jeśli nie jest to tajemnicą? :D

    • @InvisibleConfusion
      @InvisibleConfusion 4 роки тому +5

      @@heniekhenkowski411 To chyba była jednak tajemnica

    • @kaszubinvenotr6892
      @kaszubinvenotr6892 4 роки тому +1

      @@InvisibleConfusion pewnie jakaś wysoko-rangowa polibuda

    • @bougahh
      @bougahh 3 роки тому

      @Gunnar Dustin Zamknij się baranie jesteś w Polsce to po polsku mów

    • @cario8222
      @cario8222 Рік тому

      @@bougahh a co jeśli nie jest w Polsce, kimkolwiek on był? To chyba nie PRL że się wyjeżdża z kraju za pozwoleniem od łaskawej władzy

  • @killersli4830
    @killersli4830 2 роки тому +10

    Dzien dobry bardzo dziekuje za lekcje z pana filmów z panem Borowiakiem z 15LO Gdańsk ulica Pilotoów 2A Kocha Pana!!!!!!!!!!!!!!! Jest Pan informatycznym depeściakiem ❤😻

  • @Solider
    @Solider 2 роки тому +45

    Jeżeli macie błąd to przez 32 bitowego inta, należy go zmienic na 64 bitowego np. long long int.
    -> cout

  • @konradmuchla1486
    @konradmuchla1486 Рік тому +3

    Witam. Zostawiam komentarz. Chce się przebranżowić na branżę IT i idzie mi naprawdę ciężko,mało co rozumiem bo wszystko ulatuje z głowy ale nie poddaje się. Będę się starał do końca,znajdę swoją pierwszą pracę w branży IT. Dziękuję że są ludzie tacy jak Pan. Pozdrawiam

  • @Tinishai
    @Tinishai 9 років тому +254

    18:38 linijki 33 i 34 powinny być zamienione :)

    • @pampi9662
      @pampi9662 8 років тому +13

      +Kami LPM wielkie dzięki! chyba z pół godziny jak nie dłużej się z tym głowiłem i przeszukiwałem fora szukając odpowiedzi na treść błędu XDD jeszcze raz dzięki ^^

    • @Tinishai
      @Tinishai 8 років тому +1

      +Michał Klemiato Nie ma sprawy, powodzenia! :)

    • @bartoszgrzybowski4073
      @bartoszgrzybowski4073 8 років тому +3

      +Kami LPM no i dzięki wielkie!
      nie pozdrawiam wszystkich tych fifarafa programistow tutaj

    • @Tinishai
      @Tinishai 8 років тому

      Ale mnie pozdrawiasz? :D

    • @bartoszgrzybowski4073
      @bartoszgrzybowski4073 8 років тому +12

      +Kami LPM Nie pozdrawiam jeszcze konfidentów, wszystkich pozostałych pozdrawiam!

  • @human-b3b
    @human-b3b 7 років тому +2

    Świetnie prowadzony kurs, nareszcie zwięzłe wytłumaczenie skąd się wszystko bierze a nie jak to często bywa rób tak i koniec. Jakby jeszcze pod filmami były zestawy zadań do zrobienia to praktycznie byłoby wszystko aby utrwalić sobie podstawy.

  • @kubak.1810
    @kubak.1810 6 років тому +1

    Panie Miroslawie, dziekuje za podana Wiedze, za Wyjasnienie Tematu i Przedstawienie go w taki cudowny Sposob! :D
    Mi zostaje Praktywowac dana Wiedze dalej na Forach, Stronach, tworzac nowe wlasne Programy. Zrozumialem duzo a choc co z Programowaniem zaczolem.
    Dziekuje jeszcze raz i prosze o wiecej Materialow!

  • @kubaw2882
    @kubaw2882 6 років тому +1

    Wróciłem z ciekawości do starszych odcinków - jak ten, kiedy zaczynałem swoją naukę z programowaniem. Panie Mirku to tu słucha się o wiele lepiej, niż odcinki robione teraz. Głos jakby bardziej naturalny i nie ma muzyczki, która rozprasza. Pozdrawiam serdecznie i dziękuję za pomoc przy starcie :)

  • @rabaababa5519
    @rabaababa5519 10 років тому +2

    Wysiadam w połowie, zacznę chyba od początku oglądanie. ;)

  • @andrii4631
    @andrii4631 Рік тому

    kiedyś nie zrozumiałem tego tematu co spowodowało, że opuściłem naukę C++.
    minęło pół roku, wróciłem do tego filmika i planuję kontynuować swoją drogę z tym językiem.
    Nie dajcie się za wygraną 😎

  • @CpMiko2005pl
    @CpMiko2005pl 2 роки тому

    Żaden poradnik mi nie pomógł ze wskaźnikami dopóki nie znalazłem tego.WYTłumaczone IDEALnie

  • @kubus.636
    @kubus.636 2 роки тому +1

    dokładnie rok temu zacząłem się uczyć programować. Doszedłem bardzo dawno temu do wskaźników i stwierdziłem że nie potrzebne mi są, ale zacząłem programowanie obiektowe i polimorfizm to wskaźniki bardzo są potrzebne do tego, nie rozumiałem tego tematu i wróciłem do proceduralnego od zera znowu. Teraz mogę powiedzieć, że rozumiem wskaźniki tylko trzeba poświęcić na to trochę czasu

  • @yodamvegga21
    @yodamvegga21 2 роки тому

    Pamiętam kiedyś nawet zacząłem uczyć się Cplusa krok po kroku jakiś kurs i fajnie mi szło, praktycznie wszystko rozkminiałem aż doszedłem do wskaźników właśnie, które okazały się ścianą i końcem mojej nauki...

  • @tomaszzsamot3087
    @tomaszzsamot3087 10 років тому

    Witam. Uważam, że robi pan kawał dobrej roboty! Nie chodzi mi tylko o kurs, który zapewne wielce pomaga ludziom takim jak ja, a mam tu na myśli niedoszłych techników informatyków. Przeglądałem testy z kwalifikacji E12, świetna sprawa. Jeżeli pojawią się testy z pozostałych kwalifikacji będę wniebowzięty. Szacunek za to co pan robi.

  • @brzozq4445
    @brzozq4445 Рік тому

    Dla mnie jak narazie najtrudniejszy odcinek, ale takie są najlepsze.

  • @Glomsky
    @Glomsky 9 років тому +2

    W okolicach 6:50 jest chyba błąd - przy 'tablica' :
    tablica = new int [ile]
    nie ma gwiazdki, bo nie chodzi nam o tego na co wskazuje wskaźnik (a chodzi o adres własnie). Poprawcie mnie jesli się mylę.
    Pozdrowienia.

  • @radekmusial7858
    @radekmusial7858 2 роки тому

    Ten kanał to skarb narodowy

  • @kacperp7852
    @kacperp7852 5 років тому

    ja nie mogę ! 10 odcinek za mną rozumiem wszystko a robię to w 8 klasie Panie Mirosławie naprawde panu dziękuje wiem że raczej pan tego nie zobaczy (film opublikowany był 5 lat temu) ale po prostu mam takie wrazenie ze moze jednak jakos pan to odczyta

  • @mateuszgorzelak7503
    @mateuszgorzelak7503 7 років тому +1

    Jak słucham tego co Pan mówi to przypomina się pewien rozdział z Symfonii c++ :)

    • @Przeciętny_Zjadacz_Chleba
      @Przeciętny_Zjadacz_Chleba 4 роки тому

      Oczywiście. Nie znam ani jednego zawodowego programisty C/C++ który nie uczył się na książkach Jerzego Grębosza. I jak widać Panu Mirosławowi również jest ona nie obca ;-)

  • @karolciak9975
    @karolciak9975 10 років тому +1

    Na prawde gratuluje za chec jak i za poswiecenie czasu ktory pan poswiecil robiac ten kurs !!
    Szczerze mowiac do tego odcinka rozumialem wszystko tylko tu musialem powtorzyc filmik :p

  • @skoru2
    @skoru2 4 роки тому +2

    Jeżeli masz błąd kompilacji w 8:27:
    Masz masz komputer 64 bit i konwersja (int)tablica ci nie zadziała. Zamieniłem ten zapis na reinterpret_cast(tablica) i poszło
    Proszę doświadczonych programistów o odpowiednie wytłumaczenie tego zagadnienia, ja się dopiero uczę :)

  • @przezoddechdoserca1677
    @przezoddechdoserca1677 2 роки тому +11

    cout

  • @Flukad
    @Flukad 8 років тому

    Dziwne, zrozumienie tego nie sprawiło mi aż takich trudności na jakie się nastawiłem, natomiast w poprzednich filmach tej serii, gdy coś powinno być łatwe (ponieważ Pan Zelent tłumaczył to prostymi słowami i bez większych przykładów), nie zrozumiałem kilka rzeczy do końca, nie czuję tego, że to dobrze przepracowałem i będę musiał jeszcze do poprzednich części wrócić. Każdy najwidoczniej jest inny, ale najważniejsze, żeby każdy to miał na prawdę w głowie. Zaczynałem się martwić, czy ten kurs to będzie tylko teoria i przykłady. Bałem się, że będę musiał szukać ćwiczenia, dla samodzielnego tworzenia, w internecie, ale na szczęście wspomniał Pan, że niedługo czeka mnie praktyka. Dziękuję jak zawsze!

  • @sergiusz6472
    @sergiusz6472 6 років тому

    Jak pan mówi posłuchaj to aż chce się słuchać :P

  • @jerzyjarczynski2109
    @jerzyjarczynski2109 4 роки тому +3

    Witam,
    do kursu C++ podchodzę nie po raz pierwszy w swoim życiu i mam nadzieję, że nie ostatni. Pan Mirosław prowadzi mnie przez moje studia Informatyki, gdzie programować po prostu trzeba umieć i nie ma czasu na tyle poświęcenia ile [pan Mirosław] wkłada w dbałość o zrozumienie u uczniów. Odcinek ze wskaźnikami początkowo był dla mnie przerażający, ale teraz jestem już w miarę oswojony z tematem i nie boję się tej wiedzy. Pozwoliłem sobie zamieścić komentarz ze względu na drobny problem, który napotkałem podczas kompilacji kodu w CodeBlocks na swojej maszynie. W momencie 8:20 "Po prostu int w nawiasach, to wystarczy", okazało się, że u mnie nie wystarczy. Kompilator narzekał, że nie otworzy programu, bo:
    error: cast from 'int*' to 'int' loses precision [-fpermissive]|
    Jako, że jako przyszły informatyk jestem leniwy to zrezygnowalem z badania przyczyn tego bledu i zastosowalem u siebie rozwiązanie alternatywne:
    Zamiast tej linii:
    cout

  • @sadwhale09
    @sadwhale09 6 років тому +2

    Zatrzymałem film w połowie (przed zaczęciem pisania przykładów) i przez dwa dni zbierałem się w sobie, żeby kontynuować 😂

  • @stalowa_armia
    @stalowa_armia 9 років тому +43

    Powróciłem drugi raz do tego odcinka, ponieważ miałem problemy ze zrozumieniem. Teraz z czystym sumieniem mogę powiedzieć, że rozumiem zastosowanie wskaźnika oraz zaczynam potrafić go używać.
    Dzięki ***** :)
    Niech RAM będzie z tobą

    • @olivierkus
      @olivierkus 7 років тому +9

      ja już wracam 4 :/

    • @adrianpaz9566
      @adrianpaz9566 7 років тому +4

      Ja też nie ogarniam :( trudny odcinek..

    • @borekworek69
      @borekworek69 6 років тому +1

      Niech RAM będzie z Tobą

  • @michah3956
    @michah3956 11 років тому +1

    Dobry odcinek, pewnie wielu ludziom wyjaśni dlaczego i jak używać wskaźników.

  • @ProjektPierscien
    @ProjektPierscien 8 років тому +32

    Fakt wskaźniki są ciężkie, ale trochę pracy i można działać!

    • @hackiwall7456
      @hackiwall7456 8 років тому +1

      wow Wiśnia nie wiedziałem, że programujesz :D

    • @tentend321
      @tentend321 8 років тому

      SZTUCZNA GŁUPIA WIŚNIA PODRÓBKA WIŚNI TA KTÓRA ROBI CIEKAWOSTKI

    • @tentend321
      @tentend321 8 років тому +1

      MardesPL Najpierw bartekzbartek (Wiśnia)

    • @tentend321
      @tentend321 8 років тому

      MardesPL Boxdel to gowno

    • @4programming17
      @4programming17 8 років тому

      Nareszcie znalazłem kanał prawdziwego wiśni :-D ! (Nagrasz jakiś film o programowaniu XD ?)

  • @timtim699
    @timtim699 5 років тому

    Dziękuję bardzo za wiedzę

  • @karolgrabek8915
    @karolgrabek8915 8 років тому

    Świetnie wytłumaczone jak działają wskaźniki. Dopiero teraz naprawdę je rozumiem
    Pozdrawiam

  • @malykaras1
    @malykaras1 3 роки тому

    Powiem to co każdy chce powiedzieć "Merci że jesteś tu"

  • @antekzajac8530
    @antekzajac8530 8 років тому

    Trudny temat, ale bardzo podoba mi się programowanie i im trudniej tym bardziej jestem nim zainteresowany. 3 raz oglądałem ten odcinek i dopiero dotarło do mnie jak się robi wskaźniki. Tak poza tematem, to bardzo podobają mi się kursy, jakie pan przygotowuje dla początkujących. :)

  • @mikus9765
    @mikus9765 7 років тому +1

    Tak się zainteresowałem C++, że "pożeram" pańskie odcinki. W jeden dzień przerobiłem aż 5.

  • @dominator1978
    @dominator1978 10 років тому +2

    Kawał dobrej roboty :D Dziękuję :)

  • @UHILON44
    @UHILON44 8 років тому

    Panie Mirosławie, świetny kurs. Polecam go każdemu kto chce zacząć przygodę z programowaniem. Bardzo za niego dziękuję.
    Osobiście robię kurs jednocześnie z podręcznikiem "C++. Przewodnik dla początkujących" Alexa Allain. Dla mnie połączenie kursu i książki jest świetną praktyką, jak czegoś nie rozumiem to uzupełnię to w książce lub kursie. Po skończeniu książki i Pana kursu czeka Java :) Pozdrawiam.

    • @ZegarekOszczypa123
      @ZegarekOszczypa123 7 років тому

      I jak tam idzie ;D?

    • @UHILON44
      @UHILON44 7 років тому

      Już lecę z Javą :)

    • @ZegarekOszczypa123
      @ZegarekOszczypa123 7 років тому

      A z czego się uczysz? Z jakiś książek czy kursów w sieci?

    • @UHILON44
      @UHILON44 7 років тому

      wykupiony mam kurs na stronie javastart.pl + książki "rusz głową JAVA wyd.II" oraz "JAVA Podstawy wyd. IX". Po tym jak dobrze ogarnę podstawy to biorę się za JavaEE

  • @DamianJuszczak2981
    @DamianJuszczak2981 11 років тому

    Jak zwykle Super!

  • @KrzysztofStarzyk
    @KrzysztofStarzyk 10 років тому +5

    Chciałbym Mirku serdecznie podziekować. To jak prowadzisz ten kurs to mistrzostwo. Musisz wiedziec, że dzieki temu kursowi pomagasz wielu ludziom. Oczywiście subskrypcja i lajk pod każdym przeanalizowanym filmem. Ja też mam szacunek do twojego czasu ,wiec pozdrawiam i lece do Code Blocka. ;)

  • @DarQ522
    @DarQ522 9 років тому +1

    Czytam akurat książkę "Symfonia C++" i przez problemy ze zrozumieniem tego trudnego tematu jakim są wskaźniki zajrzałem tutaj... ktoś tu chyba czytał książkę Grębosza i posługuje się użytymi przez niego przykładami :D I słusznie, bo są bardzo dobre!

    • @RaxonPC
      @RaxonPC 3 роки тому

      i jak, programujesz dalej?

  • @julenissen5477
    @julenissen5477 8 років тому +1

    Wow, ten odcinek był wyczerpujący ;) ale jak zwykle świetny materiał!!

  • @Iscratchscratches
    @Iscratchscratches 4 роки тому

    ~10:00 Świetnie wytłumaczone! Dzięki!

  • @janwachowski3320
    @janwachowski3320 3 роки тому

    Robiłem jakiś czas temu jakiś kurs C++ i właśnie do wskaźników doszedłem i na tym zakończyłem kurs... ;) Poza napisanie prostego programiku liczącego zużycie paliwa albo cenę danej wagi lub objętości np. złota i podobne żenady - nie wyszedłem. Co ciekawe z programiku liczącego zużycie paliwa nawet korzystam... ;)

  • @przemek_woźniak
    @przemek_woźniak 3 роки тому

    Udało się :) czyli wydaje mi się, że zrozumiałem :) dzięki wielkie!

  • @rutekpr6076
    @rutekpr6076 6 років тому +1

    dla tych co wychodzi 22:30 srednia 1,2 trzeba zmienic na

  • @Isareesp
    @Isareesp 6 років тому +1

    Świetny odcinek! Tak jak wspomniałeś, nie jest to łatwy temat. Od piątego odcinka zastanawiałem się jak można na początku programu liczącego średnią ustalić ilość ocen, które komputer ma policzyć do średniej. Udało mi się rozszerzyć program liczący średnią o wpisanie ilości ocen do policzenia. Jeśli kogoś to zainteresowało, proszę sprawdzić i ewentualnie wprowadzić jakieś poprawki :)
    #include
    using namespace std;
    int ile;
    float oceny=1;
    float suma=0, srednia;
    int main()
    {
    cout

  • @heniekhenkowski411
    @heniekhenkowski411 6 років тому +1

    4 podejścia do tego odcinka a i tak nie do końca załapałem. Niby rozumiem co to i po co to ale jak zaczynasz tego używać to już jest trudniej... No nic, potrzeba praktyki :D

  • @TheGryvi
    @TheGryvi 11 років тому

    dzięki, wiedziałem czym jest wskaźnik, ale teraz wiem jak mogę go zastowować :D

  • @prog5946
    @prog5946 10 років тому +10

    Panie Mirosławie: ma Pan rzadki dar mówienia o rzeczach trudnych w prosty sposób. Proszę kontynuować nagrywanie kursów, bo są rewelacyjne. Mogę tylko napisać: bardzo dziękuję.

  • @Bartozios
    @Bartozios 11 років тому +2

    Jej nareszcie wskaźniki

  • @tudaleful
    @tudaleful 11 років тому +7

    7:21 Kolejne indeksy to 0, 1, 2 i 4? Wiem, czepiam się szczegółów, ale znalezienie błędu w Pańskim poradniku to sztuka :) .

  • @masohas437
    @masohas437 Рік тому +1

    Jeśliby ktoś miał problem z błędem wyskakującym przy delete(w Visual studio to "debugbreak") 8:36 to nie można dodawać inkrementacji w linijce 18(w filmie), zamiast tego proponuje wykasowanie tej linijki i stworzenie wskaźnika lokalnego dla pętli i przypisaniu mu adresu konkretnej komórki pamięci która ma się wyświetlić
    int* p = &arr[i];
    Oto cały kod:
    int main()
    {
    int number;
    std::cout > number;
    int * arr = new int[number];
    for (int i = 0; i < number; i++) {
    int* p = &arr[i];
    std::cout

  • @MistrzBartek125
    @MistrzBartek125 4 роки тому +1

    Po tym odcinku z kursu odpadło 200 tys osób

  • @DonEsteban3D
    @DonEsteban3D 8 років тому +17

    5:36-6 misja terran ;p

  • @2233igor
    @2233igor 4 роки тому +6

    Dla tych co używają XCode.
    Zamiast (int) stosujcie (uintptr_t) i delete nie będzie działał dopóki tablica nie będzie miała pierwotnej wartości, czyli
    tablica=tablica-ile;
    delete [] tablica;
    żeby uniknąć powrotu do pierwotnej wartości stosuje się podobno zapis tablicowy w pętli for . Jak się douczę to zrobie edit!

    • @kollyr5524
      @kollyr5524 Рік тому

      douczyłeś się?

    • @2233igor
      @2233igor Рік тому

      @@kollyr5524 juz nawet nie pamietam o co chodziło i nie robie w C++ 🥹

    • @kernelirq9246
      @kernelirq9246 Рік тому

      @@2233igor wróciłeś do C++?

  • @NIGHTMARE01
    @NIGHTMARE01 4 роки тому +2

    Studia informatyki na polibudzie gdańskiej pozdrawiają

  • @blekfut5763
    @blekfut5763 4 роки тому +4

    13:52 - i to mnie BARDZO myliło: po co deklarować wskaźnik, jeśli w pierwszej części programu go nie używamy - po co linie 12 i 13, skoro wystarczyłoby
    int tablica[ile]?

  • @gomeziiiwielki2048
    @gomeziiiwielki2048 8 років тому

    Ten odcinek przyszedł mi łatwiej niż nr.8 :D

  • @Tomekk913
    @Tomekk913 9 років тому +14

    Oo nawet przykład z Symfonii C++ :D

  • @pplain56
    @pplain56 6 років тому +3

    Where have you been all my life? ^^
    Fantastyczny kurs, wiem że minęło milion lat ale nie wytrzymam i muszę to napisać.

  • @blekfut5763
    @blekfut5763 4 роки тому +32

    8:21 - u mnie "rzutowanie zmiennej na typ int" nie działa, otrzymuję komunikat : "|error: cast from 'int*' to 'int' loses precision [-fpermissive]| - o co chodzi?

    • @supersonictumbleweed
      @supersonictumbleweed 4 роки тому +4

      to jest uproszczona wersja wypisywania, według standardów jedyna gwarantowana opcja wypisywania adresów to printf("%p", wskaznik). Z drugiej strony jak dasz kompilatorowi opcję -fpermissive to on zwyczajnie to zignoruje i zadziała tak jak jest w wideo.

    • @kthmhg
      @kthmhg 4 роки тому

      @@supersonictumbleweed Mam to samo, jak "dasz kompilatorowi opcję -fpermissive" to zrobić?

    • @supersonictumbleweed
      @supersonictumbleweed 4 роки тому +3

      @@kthmhg jak chcesz zrobić dokładnie jak w wideo to tak, ale to jak się daje dodatkowe argumenty do kompilatora to już zależy od twojego środowiska (czy Visual Studio czy Eclipse czy CodeBlocks).
      alternatywnie zamień to co jest w wideo na printf("%p", wskaznik);
      ^ różnica w powyższym to to %p które jest specjalnie do wskaźników podczas gdy autor wideo używa %d (chyba) które jest ogólnie do liczb

    • @kthmhg
      @kthmhg 4 роки тому +13

      @@supersonictumbleweed Dobra śmiga, dzięki wielkie (Dla tych co to będą czytać, trzeba zastąpić cały wers z cout wersem : printf("%p",tablica); )

    • @Kaloe-san
      @Kaloe-san 4 роки тому +1

      Dzięki Wielkie Panom!

  • @Wi3rzb0
    @Wi3rzb0 6 років тому +7

    07:20 ma być indeks: 3 w ostatnim, popraw pan panie Mirosławie

  • @imienazwisko7400
    @imienazwisko7400 3 роки тому +2

    12:29 "Nazwa tablicy jest jednocześnie adresem jej zerowego elementu", ja bym powiedział inaczej: Adres tablicy zaczyna się od tego samego bajta co adres zerowowego elementu tablicy. - Myślę, że to łatwiej zrozumieć. No i w = &tablica to wskaźnik na całą tablicę, a w = tablica to wskaźnik na zerowy element tablicy. Normalnie ten adres to 4 bajty, bo to typ int, ale może być więcej np jeśli się zaznaczy adres całej tablicy, a nie tylko że ma wskazywać tablicę w ogóle, niekoniecznie całą. Nie jest to wcale takie trudne, tylko trzeba wiedzieć.

  • @rubenmax7310
    @rubenmax7310 10 років тому +2

    Chciałbym powiedzieć że jest to najlepszy kurs jaki znalazłem w polsce. :) dzięki Panu w końcu zaczynam coś rozumieć... do tej pory czytając książki było to bardzo ciężkie do zrozumienia, a tu jest o wiele wiele lepiej. Przydałyby się jeszcze tylko jakieś zadania do zrobienia w PDF + zrobione ("odpowedzi") zad by móc sprawdzić czy poanalizować kod. Bo jak wiadomo tylko praktyka i samowolne wklepywanie kodu i różnych przypadków może nauczyć. Bo tak to nie wiem jak ćwiczyć jeszcze te odcinki. Wtedy było by naprawdę super! i mam nadzieje że mógłby Pan coś takiego w przyszłości dodać... dziekuje

    • @Rzabo
      @Rzabo 10 років тому

      Zadanie mam także w Symfonii C++, ale tam muszę stronę parę razy przeczytać, aby zrozumieć, tutaj miałem tak z odczytem/zapisem do pliku, ale chodziło raczej o to, że nie do końca rozumiałem pętlę for. Po raz kolejny dziękuję za świetny kurs i proszę o kontynuację!

  • @wiktorpoprawski5007
    @wiktorpoprawski5007 8 років тому +62

    Taki tip na przyszłe filmy
    Mówienie z góry że coś jest trudne jeszcze bardziej utrudnia naukę.
    Zazwyczaj działa tu efekt placebo, uczący się wmawia sobie że coś jest trudne i rzeczywiście, nauka nawet najprostszych rzeczy sprawia mu problem. Nie mówię żeby nie zwracać uwagi na bardziej skomplikowane działy języka ale robić to w sposób mniej straszący coś w stylu "Dzisiaj prosiłbym cię o większe skupienie się" czy "Wskaźniki są trochę bardziej złożone, wymagają więcej twojej uwagi".
    I jeszcze ten obrazek na początku mówiący "BĘDZIESZ ŚLĘCZAŁ NAD TYM GODZINAMI !" xd

    • @santee3033
      @santee3033 6 років тому +1

      Wiktor Poprawski zgadzam się w 100%

    • @borekworek69
      @borekworek69 6 років тому +5

      Funkcje np były jednymi z prostrzych elementów poradnika, a przecież pan Mirosław tyle przed nimi ostrzegał...

    • @dadasss69
      @dadasss69 6 років тому +12

      ekhm... Ja uważam, że lepiej ostrzec przed trudnym tematem niż abym siedział i zastanawiał się "czy tylko ja tego nie kumam?"

    • @ModeEmoON
      @ModeEmoON 6 років тому +6

      Nie jest to pierwszy filmik tylko, któryś z kolei - przez cały kurs jest mówione, że C++ jest prosty, tylko wymaga ćwiczeń. Myślę, że warto mówić jakie są realia, a jeśli ktoś doszedł do tego etapu to po usłyszeniu czegoś takiego bardziej go to podbuduje na zasadzie "kurczę, ale jestem dobry - inni już pewnie dawno odpadli" ;) Obrazek wskazuje na wymóg analitycznego myślenia, jeśli kogoś to przeraża to traci tu czas bo nie odnajdzie się w programowaniu.

    • @TheKota34
      @TheKota34 6 років тому +2

      Powiedział że to trudne i dał mi szansę żebym się nie poddawała bo jestem początkująca i muszę to wpoić poprzez oglądanie kilka razy i ćwiczenia (o czym mowa pod koniec) W przeciwnym wypadku pomyślałabym że ze mną jest coś nie tak i poddałabym się ;)

  • @chocisz
    @chocisz 9 років тому +22

    Dla mnie zdecydowanie jest to najtrudniejszy dotychczas odcinek... Ale nie dam się:D:D Panie Mirosławie kiedy będą następne odcinki PHP? Bo nie ukrywam, że C++ to dla mnie wstęp do dalszej nauki PHP.

    • @91TheSebastian
      @91TheSebastian 4 роки тому

      z perspektywy czasu myslisz, ze C++ jako wstep do PHP to byl dobry pomysł?

    • @blowmanPL
      @blowmanPL 4 роки тому +1

      @@91TheSebastian Według mnie C++ to bardzo dobry, lecz wymagający wstęp do daleszej nauki programowania. Uczy myślenia i samokontroli przy pisaniu kodu. C++ nie prowadzi za rękę i nie wybacza błędów. Traktuje programistę jako osobę rozumną, pozwala na wiele rzeczy i daje duże pole manewru programiście. Co do PHP, na twoim miejscu darowałbym PHP. Obecnie mało kto wykorzystuje PHP w projektach komercyjncyh, wiele projektów opiera się teraz o Node.js

    • @91TheSebastian
      @91TheSebastian 4 роки тому +4

      @@blowmanPL ja traktuje c++ tylko jako wstęp, ale potem chce uderzyć w Javę i w przyszłym roku zrobić wszystko żeby się dostać na juniora. Nie miałem wcześniej nic wspólnego z IT i od kilku miesięcy samodzielnie się ucze

    • @g1en3k
      @g1en3k 3 роки тому

      @@blowmanPL aktualnie nie lepiej isc w pythona wydaje mi sie że to bardzo rozwojowy język?

  • @muaythailsd238
    @muaythailsd238 9 років тому +2

    Film nie jest zły ale,
    19:10 nie do końca prawda jeżeli chodzi o obecne kompilatory, obecnie kompilator po dodaniu dyrektywy O2/O3 może poradzić sobie nawet lepiej mając tablice zamiast wskaźników. Przykłady z filmu generuje praktycznie identyczne czasy dla tablic i wskaźników po dodaniu O2.
    24:31 nie referencje tylko wskaźnik :)
    25:04 wypada dodać że jeżeli zmienimy wartość zmiennych w funkcji to zmienią się poza nią.

  • @witekmikolajczak
    @witekmikolajczak 7 років тому

    Wystarczy dobrze się skupić i wszystko zrozumiesz ;)

  • @bene8114
    @bene8114 7 років тому +5

    Wydaje mi się, że do 8m23s w przykładzie jest kilka błędów. Tj. bezpośrednie zwiększanie wskaźnika poprzez "tablica++" skutkuje tym, że po wyjściu z pętli tablica będzie wynosiła wartość końcowego adresu + 4 bajty (int), w C++11 funkcja "delete [] tablica" zwróci błąd "invalid poitner". lepszym rozwiązaniem jest cout

  • @abstynent4857
    @abstynent4857 5 років тому +2

    Przy tym programie drugim patrzę i w plikach też jest błąd możecie mieć problem że nie wyświetla wam się czas ze wskaźnikiem wystarczy usunąć kod ten pierwszy delete[] tablica; a ten drugi zostawić i git pozdrawiam

  • @Bajdikx
    @Bajdikx 2 роки тому +8

    Mam problem z debugowaniem kodu, który rozwiązałem.
    Obecnie sam przerabiam cały kurs pracując w Microsoft Visual Studio, ale jeśli coś mi nie działa to sprawdzam kod jeszcze w CodeBlocks.
    Spowodowany był on błędem w linijce 33 oraz 34.
    33 tablica = new int[ile];
    34 int *wskaznik = tablica;
    Dokładnie wygląda to tak jak w filmiku, ale po pobraniu materiałów zauważyłem, że w Pana kodzie te dwie linijki są zamienione.
    Satysfakcja z rozwiązania problemu jest spora :D Coraz bardziej lubię studiować kody i znajdować w nich błędy ^^
    Dajcie znać jeśli ktoś miał ten sam problem :D

    • @AndrzejAAn
      @AndrzejAAn 3 місяці тому

      dokładnie ten sam problem u mnie wystąpił, dobrze że trafiłem na twój komentarz

  • @pawelrozkrut157
    @pawelrozkrut157 2 роки тому +1

    Panie Mirku, dziękuję za wykłady! Mistrzostwo świata! Jednak zaproponowany kod w liniach 33 i 34 generuje mi błąd: "exited with code -1073741819".
    Zamiast tego wpisałem
    int* wskaznik= new int[ile];
    I taka linia działa.
    Kontynuuję naukę!

  • @damianwysocki9753
    @damianwysocki9753 7 років тому

    10 odc. za mną. :) Dzięki.

  • @kdeclinetostatendeclinetos6707
    @kdeclinetostatendeclinetos6707 3 роки тому +1

    W 21 minucie funkcja wykorzystuje przekazanie danych poprzez wskaźnik, a nie referencję.
    Dla zmiennych podstawowych:
    srednia (float x) - przez wartość
    srednia (float &x) - przez referencje
    srednia (float *x) - przez wskaznik
    Dla tablic mamy:
    srednia (float tab[]) - przez referencje
    srednia (float *tab) - przez wskaznik

  • @badder9492
    @badder9492 5 років тому +13

    Czas zapisu (bez wskaznika): 1.109
    Czas zapisu (ze wskaznikiem): 1.042 wow

    • @pabiak8021
      @pabiak8021 5 років тому +6

      Przy większej ilości danych różnice widać lepiej

    • @spoiler-man9640
      @spoiler-man9640 4 роки тому

      Ale jak masz duży program to różnice są większe

  • @Matixpl123
    @Matixpl123 4 роки тому

    interesujące jest to że u mnie wskaźnik potrzebuje więcej czasu niż liczenie bez niego (:

  • @MrMCDanio
    @MrMCDanio 9 років тому +1

    21:50 -> Ja bym dał unsigned :D
    Uczcie się wskaźników!
    Przy dziedziczeniu (polimorfiźmie) się przyda jak mało co.

    • @kubus.636
      @kubus.636 2 роки тому

      Nieeeeeeeeeeeeeeeeeeeeeee

  • @marcinbiaecki9731
    @marcinbiaecki9731 5 років тому

    Dzięki :)

  • @MonkKingKong
    @MonkKingKong 10 років тому +8

    Witam. Napisałem program do liczenia czasu pracy operacji na wskaźnikach i bez nich i co zaobserwowałem to to, że 8/10 przypadków czas pracy na wskaźnikach jest większy. Zdziwiło mnie to mocno. Raczej zrobiłem wszystko dobrze, na początku pomyślałem, że może nie wyzerowałem zegara, ale zeruje. Zauważyłem też, że jeżeli nie zrobię delete wcześniejszej tablicy, to czas ten znacznie się skraca i wyniki są porównywalne(procentowo) do tego co obserwowałem na filmiku. Pozdrawiam

    • @adamwrzesniewski1468
      @adamwrzesniewski1468 7 років тому

      Mam tak samo. A kod skopiowałem ze strony więc nie ma mowy o błędzie z mojej strony. Pytanie jakiego używasz kompilatora, frameworka itd. I czy masz system 32- czy 64 bitowy.

  • @marcinlesniewski4571
    @marcinlesniewski4571 4 роки тому

    Elegancko

  • @Logarytms
    @Logarytms 11 років тому +2

    Dobry odcinek. Muszę tylko napisać, że bardzo dużo tutaj jest porównań podobnych do Pasji C++ Gębosza :)

  • @kaksspl
    @kaksspl 8 років тому +12

    Tylko skąd wiemy, w której komórce znajduje się wartość z mierników?
    (26:00)

    • @tomaszmaachowski2303
      @tomaszmaachowski2303 6 років тому +2

      Musi działać program, który będzie sczytywał z magistrali to, co czujnik wysyła, więc nie jest to dla komputera/programisty wiedza tajemna

  • @chrabosztm2234
    @chrabosztm2234 6 років тому

    5:05 nie dokońca po prostu deklaracje możemy zrobić po wyznaczeniu N i wyglądało to by tak long double fib[n]

  • @michaplucinski142
    @michaplucinski142 3 роки тому +12

    Super odcinek, tylko podsumowania brakło :(

  • @kruku3893
    @kruku3893 6 років тому

    Najlepiej zainwestowane pół godziny dzisiejszego dnia.

  • @TheFicktion
    @TheFicktion 4 роки тому

    Przydatne przy programowaniu uC np AVR, 32kb miejsca na program i 2 kb ramu :D jakis czas temu stworzyłem rejestrator parametrow sieci pneumatycznej na Atmega 328p (cisnienie punkt rosy itp.) ale ile sie nakombinowalem z kodem zeby sie w ramie utrzymac to masakra :D ale rejestratorek smiga i ma nawet easteregg'a :D

  • @Kisnowar
    @Kisnowar 3 роки тому

    8:12 Dlaczego nie można tutaj użyć w pętli for cout

    • @Ev3r0x
      @Ev3r0x 3 роки тому

      można, nawet trzeba, ten jego kod to jakaś porażka, miesza c z c++ i uczy złych praktyk

    • @UgaGeguga
      @UgaGeguga 3 роки тому

      @@Ev3r0x Bo to jest poradnik z 5 lat i wtedy te "złe praktyki" nie były złymi praktykami

    • @Ev3r0x
      @Ev3r0x 3 роки тому

      @@UgaGeguga Uważasz że arytmetyka gołych wskaźników jest dobrą praktyką w c++? Tak samo jak dziś, 5 lat temu też to nie było dobre. W żadnym dobrym kursie dla początkujących takiego czegoś nie ma, bo to wprowadza tylko zamieszanie. Ten kurs był przestarzały nawet wtedy gdy powstawał, nie ma w nim prawie nic ze standardu c++ 11, a już był..., o STLu też nic nie wspomniał, chociażby o kontenerach albo podstawowych algorytmach.

  • @cesarethesomnambulist
    @cesarethesomnambulist 4 роки тому +13

    Jeśli ktoś ma problem z tym, że po zakończeniu programu wywala błąd, to na forum pasja informatyki jest odpowiedź - inkrementujemy wskaźnik pokazujący na tablicę, a nie samą tablicę (kod na dole kom). A jeśli ktoś ma problem z cout

    • @StaryMotzno
      @StaryMotzno 4 роки тому +2

      Dzięki za podpowiedź, właśnie tego szukałem. Mam farta, że akurat wczoraj to napisałeś :D

    • @jerzyjureczko3024
      @jerzyjureczko3024 4 роки тому +1

      dzięki!

    • @karo_one_breath
      @karo_one_breath 4 роки тому +2

      Dzięki za odpowiedź! Właśnie miałam z tym problem na ubuntu. Ale znalazłam dla siebie jeszcze prostsze rozwiązanie, po prostu przypisałam wartość NULL do wskaźnika *tablica przed jej usunięciem (tablica = NULL;), bez potrzeby tworzenia *wskaźnika.

    • @RaxonPC
      @RaxonPC 3 роки тому

      @@karo_one_breath ale wtedy nic nie usuwasz (wyciek pamięci)

    • @sonny7723
      @sonny7723 2 роки тому

      Dzięki. Mi wywalało błąd na koncu programi

  • @andreww2130389
    @andreww2130389 8 років тому +5

    Czy czasem w 12:39 nie ma błędu?
    Przypisując adres zerowego indeksu tablicy nie powinniśmy użyć w = tablica?
    Na filmie jest że zamiast w=&tablica[0] mozemy uzyc w= &tablica.

    • @jhhj626
      @jhhj626 8 років тому +4

      +Andrzej Wrzosek włącz adnotacje :)

    • @andreww2130389
      @andreww2130389 8 років тому +2

      +hg song , faktycznie :D Mam wyłączone bo przeważnie są wkurzające ;)

  • @swiss_ch
    @swiss_ch 8 років тому +1

    @Mirosław Zelent
    Czy przestawienie wskaźnika tablica w przykładzie pokazanym w 8:10 i później podanie go przy operatorze delete spowoduje prawidłowe usunięcie tablicy z pamięci ?
    Co przyjmuje delete[ ] ? adres początku tablicy, czy obojętne jaki adres ale w obszarze zaalokowanym przez new ? Jak można sprawdzić czy pamięć została pomyślnie usunięta ? z góry dzięki za odpowiedź :)

    • @krilek
      @krilek 4 роки тому

      Masz rację: stackoverflow.com/questions/6420329/can-i-delete-a-pointer-that-points-into-an-allocated-array-but-not-to-the-sta

  • @damianhinc4564
    @damianhinc4564 8 років тому +12

    11:58 "Mniejszy o 8 bajtów" jak coś.. kto słucha ten wie, ale żeby się nikomu nie pomyliło... : )

  • @perseusz1691
    @perseusz1691 Рік тому

    Pozdrawiam Politechnikę Lubelską

  • @siemniak
    @siemniak 8 років тому

    Mam pytanie może trochę dzwine. Około 8:30 minuty tworzymy tą tablice. Chciałem sobie zobaczyć co będzie jeśli dam cout

    • @MrPete1223
      @MrPete1223 8 років тому

      siemniak No nie powinno być zero, bo dopóki nie przypiszesz zmiennym wartości, to one mają randomowe wartości. Spróbuj sobie zadeklarować tablicę bez inicjowania jej wartości i odczytuj po kolei jej elementy.

  • @dominikkowalczyk6578
    @dominikkowalczyk6578 6 років тому

    A propos zadania domowego:
    W konsoli śmiga, aż miło. Natomiast SPOJ niestety odrzuca kod jako błędny. Czuje się zawiedziony i nie wiem tylko, czy ja gdzieś popełniłem błąd, czy sędzia kalosz... Poniżej wklejam kod:
    #include
    #include
    using namespace std;
    int test,ileob,suma=0;
    double ileciawpa;
    int main()
    {
    cin>>test;
    for (int i=0; i>ileob>>ileciawpa;
    int *czasnacia = new int [ileob];
    for (int i=0; i>czasnacia[i];
    }
    int *ilecianadob = new int [ileob];
    for (int i=0; i

  • @adambury8992
    @adambury8992 10 років тому

    Niepotrzebne jest przypisanie wskaźnika do wskaźnika: int *wskaznik=tablica;
    Można było użyć od razu: *tablica=i; *tablica+=50; tablica++;

  • @blekfut5763
    @blekfut5763 4 роки тому +2

    14:09 - nie rozumiem czemu w jednej linijce deklarujesz że tablica[i]= i a w następnej dodajesz 50 - dlaczego nie zrobić tego w jedenj linii: tab [i]=i+50?

  • @staszku800607
    @staszku800607 3 роки тому

    Znalazlem rozwiazanie bledu z kodu z filmiku. Bylo na stronie Pana Miroslawa na forum : "W linii 33 kodu porównującego czas następuje przypisanie zmiennej wskaznik obiektu tablica, który został właśnie usunięty, i zostaje ponownie zdefiniowany dopiero w następnej linii. W skrócie wydaje mi się, że linie 33 i 34 powinny być zamienione miejscami, jak ma to miejsce w kodzie dołączonym do odcinka. "