C-kieli ja dynaaminen muistin varaus

Slides:



Advertisements
Samankaltaiset esitykset
Tietokonetekniikka 4 Tieto ja tiedon talletus
Advertisements

Olio-ohjelmoinnin perusteet luento 3: Muuttujista ja funktioista Sami Jantunen LTY/Tietotekniikan osasto.
© Hannu Laine 1 Tietorakenteet ja algoritmit Funktio-osoittimet Funktio-osoittimen ja taulukko-osoittimen vertailu Funktio-osoittimen käyttötapoja.
JavaScript (c) Irja & Reino Aarinen, 2007
Ict1td002: Ohjelmointitaito Kertaus Osio 2 - luokat - ilmentymät - viittaus- ja arvomuuttuja - ilmentymien taulukointi HAAGA-HELIA IltaTiko.
Lähiverkot erikoistyökurssi
Tietorakenteet ja algoritmit
Tyyliä verbeillä ja lausekkeilla
Syksy 2001 KYAMK/J.Ansamäki/Olio- ohjelmointi71 Olio-ohjelmointi 2. osa: diat (2. välikoe) KYMENLAAKSON AMMATTIKORKEAKOULU Jarkko Ansamäki, 2001.
11/9/2012 © Hannu Laine 1 Tietorakenteet ja algoritmit Elegantti toteutus funktiolle insert_to_list_end Alkion lisäys sisällön mukaan järjestettyyn listaan.
2.8.3 Abstraktit tietotyypit
Taulukot: Array Taulukko Javassa pitää aina perustaa (new)
Taulukoiden määrittely, käsittely ja kopiointi Vaihtoehdot taulukoille
Copyright  Hannu Laine Osoittimet ja taulukot Hannu Laine.
22. Taulukot.
Rakenteinen ohjelmointi
Näytölle tulostaminen. 7.2 Sisällys System.out.println - ja System.out.print -operaatiot. Tulostus erikoismerkeillä. Edistyneempää tulosteiden.
Komentoriviparametrit
C-ohjelmointi, kevät 2006 Taulukot Binääritiedostot Luento
Kertaus osoittimista Modulaarinen ohjelmointi
TEKNIIKAN JA TALOUDEN YLIOPISTO Symbian ohjelmointi 2. Luento Juha Turunen
OLIO-OHJELMOINTI PERUSTEET PERUSTIETOTYYPIT
Vakio-osoitin ja osoitin vakioon tMyn1 Vakio-osoitin ja osoitin vakioon Tavallinen osoitin voi vaihtaa osoitettavaa keskusmuistialuetta. Tämä voidaan tehdä.
Toiston tekeminen Javalla  Mikä toistorakenne on?  while toistorakenne  do-while toistorakenne  for toistorakenne 1.
TAULUKKO YKSIULOTTEINEN TAULUKKO. TAULUKKO  Taulukon tarkoitus Ohjelmassa tarvitaan paljon samantyyppisiä samaan kohdealueeseen kuuluvia muuttujia Näitä.
Osoitin ja char- tietotyyppi tMyn1 Osoitin ja char-tietotyyppi Osoitinmuuttuja, joka on tyyppiä char* voidaan alustaa merkkijonolla: char* alku=”En toivo.
Dynaamiset oliottMyn1 Dynaamiset oliot Dynaamisen olion tunnuksen esittely ja olion määrittely voivat tapahtua yhtäaikaisesti tai eri aikaan. Dynaamisen.
Virtuaaliset jäsenfunktiot tMyn1 Virtuaaliset jäsenfunktiot Virtuaalinen jäsenfunktio on esiteltävä monimuotoisessa kantaluokassa. Virtuaalisen jäsenfunktion.
1 Kertaus koetta varten oleellisista asioista Jukka Juslin.
7. Oliot ja viitteet.
2.8 TIETO- JA TALLETUSRAKENTEET
SQL Standardoitu kieli, jonka avulla voidaan
XNA peliohjelmointi. XNA Perustuu Microsoftin kehittämään.NET- arkkitehtuuriin ja C#-kieleen. XNA:lla tehdyt pelit toimivat Windows ja XBOX360-alustoilla.
Hyvä ohjelmointitapa (osa 2) Yleistä Lisää hyviä ohjelmointikäytäntöjä: − Jaa pitkä koodi osiin. − Käytä attribuutteja säästeliäästi.
22. Taulukot.
Poikkeukset Yleistä Virheeseen varautuminen tarkoittaa sitä, että ohjelmoija huomioi koodia kirjoittaessaan ajonaikaisen virheen mahdollisuuden.
Pinon ylivuodon estäminen Mikko Toivonen & Antti Mattila.
Olioiden taulukointi Perustaulukon käyttö Luokan ilmentymät voidaan tallettaa taulukkoon samoin kuin muuttujat Esimerkki talletetaan taulukkoon opintojaksojen.
Ohjelmointi työtä n. 16 h/vko onnistumista työtä n. 16 h/vko onnistumista #include int main(void) { std::cout
Monimuotoinen luokka tMyn1 Monimuotoinen luokka Monimuotoinen luokka mahdollistaa saman jäsenfunktion toteutuksen monella tavalla. Tällöin puhutaan virtuaalisesta.
1 © Jukka Juslin Luokat, attribuutit ja metodit Yleistietoa: seuraavalla koulutusviikolla tarkempi käsittely.
Ohjelmointi 1. toinen luento1 Taulukot n Kiinteät taulukot: alkioiden määrä tiedetään Dim intCount(12) As Integer 0 indeksit saavat arvoja 0-12 (Option.
14. Poikkeukset Sisällys Johdanto poikkeuksiin. Poikkeusten käsittely: − Poikkeusten käsittely paikallisesti. − Poikkeusten heittäminen. Exception.
15. Ohjelmoinnin tekniikkaa
Foreach-toistolausetMyn1 foreach-toistolause foreach-rakenteella on kätevä käydä läpi kaikki taulukon alkiot. Erityisen kätevää se on hajautustaulukon.
Ohjausrakenteet Määräävät ohjelmakoodin suoritusjärjestyksen Ehtolause if – else on muotoa if (lauseke) lause1 else lause2 Jos lauseke on tosi, niin suoritetaan.
Prioriteettijonot ja kekolajittelu (heapsort)
Muuttujan osoite int a=1; 0xbfffea64 /* tulostetaan a:n osoite*/ printf(“%p\n”, &a); 0xbfffea68 /* tulostetaan a:n osoite + 1*/ printf(“%p\n”, &a+1); /*
Olio-ohjelmoinnin perusteet luento 3: Muuttujista ja funktioista Sami Jantunen LTY/Tietotekniikan osasto.
Tiedosvirtat Puskuroiduissa virroissa lukeminen/kirjoittaminen tapahtuu lohko kerrallaan stdin – puskuroitu (näppäimistö) stdout – purkuroitu (näyttö)
Funktioesittelyt (declarations) Jos funktiota käytetään ennen sen määrittelyä (definition), se pitää esitellä (declare) - muuten sen tyypiksi oletetaan.
Struct struct on tietotyyppi, joka koostuu kokoelmasta eri tyyppisiä, nimellä viitattavia elementtejä, jäseniä (members): struct { int tuotenumero; char.
7. Oliot ja viitteet.
7. Hyvä ohjelmointitapa..
3. Luokat, oliot ja metodit Java-kielessä (Lausekielinen ohjelmointi I ja II –kursseilla opitun kertausta.)
15. Lohkot.
Foreach-toistolause foreach-rakenteella on kätevä käydä läpi kaikki taulukon alkiot. Erityisen kätevää se on hajautustaulukon tapauksessa, jossa taulukon.
15. Lohkot.
7. Oliot ja viitteet.
Toistorakenteet Toistorakenteissa on usein tarve esim. toistaa jotakin lausetta tai lohkoa n kertaa, toistaa jotakin lausetta tai lohkoa kunnes jokin muuttuja.
7. Hyvä ohjelmointitapa..
5. Aliohjelmien toteutus
Luku 12 Java-ohjelmien suoritus
3. TTK-91-käskykanta Symbolisen konekielen tavalliset käskyt
4. Ohjelmointi konekielellä (TTK-91 ja Titokone)
Luku 12 Java-ohjelmien suoritus
3. TTK-91-käskykanta Symbolisen konekielen tavalliset käskyt
4. Luokan testaus ja käyttö olion kautta
eli oliotiedostojen käsittely
Jakso 4 Aliohjelmien toteutus
Esityksen transkriptio:

C-kieli ja dynaaminen muistin varaus Keko (heap) Dynaamiset taulukot malloc(), calloc(), realloc() ja free()

Mikä on keko (heap) ? Kaaviokuva ohjelman muistialueesta koodisegmentti (vakiokoko, ei voi kirjoittaa) main(), printf(), jne. datasegmentti (vakiokoko, joihinkin voi kirjoittaa) globaalit muuttujat paikalliset muuttujat ”dynaaminen muistialue” pino (koko vaihtelee) keko (koko vaihtelee)

Dynaamiset taulukot C:n taulukoiden koko määritellään ohjelman kirjoitettaessa Taulukon kokoa ei voi lisätä/vähentää Dynaamisilla taulukoilla kokoa voi muuttaa ajoaikana double taulukko[10];

Dynaamisten taulukoiden käyttö Määritä osoitin haluttuun taulukko elementtiin Alusta osoitin malloc():n tai calloc():n avulla varattuun muistialueeseen Vertaa osoitinta NULL osoittimeen Lisää/vähennä alkioiden määrää realloc():n avulla Vapauta varattu muisti free():llä double *p;

Dynaamisten taulukoiden käyttö Määritä osoitin haluttuun taulukko elementtiin Alusta osoitin malloc():n tai calloc():n avulla varattuun muistialueeseen Vertaa osoitinta NULL osoittimeen Lisää/vähennä alkioiden määrää realloc():n avulla Vapauta varattu muisti free():llä double *p;

Dynaamisten taulukoiden käyttö Määritä osoitin haluttuun taulukko elementtiin Alusta osoitin malloc():n tai calloc():n avulla varattuun muistialueeseen Vertaa osoitinta NULL osoittimeen Lisää/vähennä alkioiden määrää realloc():n avulla Vapauta varattu muisti free():llä void *malloc(size_t size); void *calloc(size_t nmemb, size_t size);

Dynaamisten taulukoiden käyttö Määritä osoitin haluttuun taulukko elementtiin Alusta osoitin malloc():n tai calloc():n avulla varattuun muistialueeseen Vertaa osoitinta NULL osoittimeen Lisää/vähennä alkioiden määrää realloc():n avulla Vapauta varattu muisti free():llä if((p=malloc(size)) == NULL)

Dynaamisten taulukoiden käyttö Määritä osoitin haluttuun taulukko elementtiin Alusta osoitin malloc():n tai calloc():n avulla varattuun muistialueeseen Vertaa osoitinta NULL osoittimeen Lisää/vähennä alkioiden määrää realloc():n avulla Vapauta varattu muisti free():llä void *realloc(void *ptr, size_t size); p=realloc(taulukko_p, max*sizeof(double));

Dynaamisten taulukoiden käyttö Määritä osoitin haluttuun taulukko elementtiin Alusta osoitin malloc():n tai calloc():n avulla varattuun muistialueeseen Vertaa osoitinta NULL osoittimeen Lisää/vähennä alkioiden määrää realloc():n avulla Vapauta varattu muisti free():llä free(p);