M. Kusmin, Programmeerimine II Teema 6 1
|
|
- Ashlie Mitchell
- 6 years ago
- Views:
Transcription
1 M Kusmin, Programmeerimine II Teema 6 1 Teema 6 Dünaamiline mälukasutus Väga sageli pole programmi kirjutamise ajal täpselt teada, kui suuri puhvreid või muid "mälust haaratavaid tükke" programmi töö ajal tegelikult vaja läheb, kui suuri massiive (või kas üldse) on vaja mällu mahutada jne Sellistel, tegelikult veel muudelgi juhtudel on arukas kasutada dünaamilist mälu hõivamist, haarates vaid konkreetselt vajamineva hulga vaba mälu Vastavad funktsioonid, mille abil sellist hõivamist sooritada saab, on kirjeldatud päisfailis alloch Kõige levinumad on järgmised funktsioonid: calloc() malloc() realloc() free() Hõivab mälu lähtuvalt antud elementide arvust ja suurusest Hõivab etteantud arvu baite mälu Muudab kahe eelnevaga hõivatud mäluploki suurust Vabastab hõivatud mälu Osades opsüsteemides (näiteks MS-DOS) kuuluvad nö raudvarasse ka sellised funktsioonid nagu farmalloc(), farcalloc() ja farfree(), siinkohal jätame nad tähelepanuta Ka ei puuduta me hetkel C++ "inteligentset" operaatorit new, mis samuti hõlmab vajalikus koguses mälu ja selle paarilist, operaatorit delete Lisaks eespool toodud funktsioonidele on kasulik meeles pidada ka funktsioonide strdup() ja bzero() olemasolu, et neid vajalikul hetkel sobivalt rakendada void *malloc(size_t size) hõivab size baiti mälu ja tagastab viida selle mäluploki algusele Kuna pole ette teada, mis tüüpi elemente kasutaja sinna paigutada soovib, siis on tagastatavaks viidatüübiks määramata tüüp void* Et kood ilus välja näeks ja kompilaator segadusse ei satuks, siis tuleb nii sellel kui ka funktsioonil calloc() tagastavale väärtusele ette näidata tüübikonversioon, näiteks selline: const int place_size_for_a_player = 32; int playground_size; int num_of_players; char *place_to_play; num_of_players = argv[1]?atoi(argv[1]):2; playground_size = num_of_players * place_size_for_a_player; place_to_play = (char*)malloc(playground_size)); free(place_to_play); void free(void *ptr) vabastab kasutuses olnud mäluploki ning tagastab selle süsteemile Siinkohal pole vaja kasutatud viita hakata konversiooniga muutma free() vaatleb seda
2 M Kusmin, Programmeerimine II Teema 6 2 ise nii nagu vaja void *calloc(size_t nmemb, size_t size) hõivab mälu vastavalt nõutud elementide arvule nmemb ja iga elemendi suurusele size Muus osas toimib see funktsioon sarnaselt funktsiooniga malloc() Nii malloc() kui calloc() tagastavad operatsiooni õnnestumise korral viida hõivatud mäluosale ja väärtuse NULL, kui hõivamine ebaõnnestus Näide N-61 /* Programmi käivitamisel püütakse eraldada mälu täisarvude massiivile, mille elementide arv on antud käsureal, loetakse sisse elemendid, sorteeritakse need ja väljastatakse */ #include <stdioh> #include <stdlibh> #define TRUE 1 #define FALSE 0 int *array; int num_of_elements; void do_input(void); void do_output(void); void do_sort(void); void do_input(void) int i; for(i=0;i<num_of_elements;i++) printf("sisesta %i täisarvuline element: ", i+1); scanf("%i", array+i); // NB! Sama saavutaks ka &array[i] abil void do_output(void) int i; for(i=0;i<num_of_elements;i++) printf("%i element: %i\n", i+1, array[i]); void do_sort(void) #ifdef SLOW int i, swpd; int t; do swpd=false; for(i=0; i<num_of_elements-1; i++) if(array[i]>array[i+1])
3 M Kusmin, Programmeerimine II Teema 6 3 t=array[i]; array[i]=array[i+1]; array[i+1]=t; swpd=true; while(swpd); #else qsort(array, num_of_elements, sizeof(int), comparision); #ifndef SLOW int comparision(const void *a, const void *b) return (*(int*)a - *(int*)b); int main(int argc, char *argv[]) if(argc!= 2) printf("\nkasuta: %s <elementide arv>\n", argv[0]); return 1; num_of_elements=atoi(argv[1]); if(num_of_elements<2) printf("\nspole mõtet sorteerida hulka, mille elementide arv on %i\n", num_of_elements); return 2; array=calloc(num_of_elements, sizeof(int)); if(!array) printf("\nviga: ei õnnestu haarata piisavalt mälu\n"); return 3; do_input(); do_sort(); do_output(); free(array); return 0; Näide N-62 Lisandub ka rekursiivsus, ehitatakse Linked List /* * wordlistc */ #include <stdioh> #include <stdlibh> #include <stringh> #define END ""
4 M Kusmin, Programmeerimine II Teema 6 4 struct wnode struct wnode *next; char *word; ; struct wnode *walloc(void) return (struct wnode *)malloc(sizeof(struct wnode)); struct wnode *add_node(struct wnode *p, char *w) if(p==null) p=walloc(); #ifdef ALLOC_FUNC_DEMO p->word=(char *)calloc(strlen(w)+1, sizeof(char)); strcpy(p->word, w); #else p->word=strdup(w); p->next=null; else p->next=add_node(p->next, w); return p; void print_list(struct wnode *p) if(p!=null) printf("%s\n", p->word); print_list(p->next); void print_reverse_list(struct wnode *p) if(p!=null) print_reverse_list(p->next); printf("%s\n", p->word); void free_nodes(struct wnode *p) if(p->next!=null) free_nodes(p->next); free(p->word); free(p); int main(void) char word_buf[256]; struct wnode *first_node=null; while(1)
5 M Kusmin, Programmeerimine II Teema 6 5 scanf("%s", word_buf); if(!strcmp(word_buf,end)) break; first_node=add_node(first_node, word_buf); print_list(first_node); print_reverse_list(first_node); free_nodes(first_node); return 0; Ülesanne 61 Joonistada näites 2 toodud programmi töö (struktuuride wnode seisundid) kolme saabuva sõna puhul Ülesanne 62 (rekursiivsete funktsioonide kasutamise harjutus) Kirjutada programm, mis arvutaks rekursiivset funktsiooni kasutades käsurealt ette antud arvu faktoriaali ja väljastaks arvu ning selle faktoriaali Lubatud sisestatavad on arvud 1 kuni 10 Ülesanne 63 Kirjutada programm, mis loeks käsureal antud failist (selle puudumisel stanstandardsisendist kuni kokkulepitud lõputunnuseni) arvulisi väärtusi ning salvestaks need linked list'i, mille elemendid peavad säilitama sisestatud väärtuse ning veel ühte long-tüüpi muutujat Sisendfaili lõppedes või pärast lõputunnuse saamist peab programm arvutama välja sisestatud arvude faktoriaalid, salvestama need eelpool nimetatud muutujasse ning väljastama arvud koos faktoriaalidega Sisetatavate arvude vahemik on 110, muud väärtused, kaasaarvatud sellised, mida ei õnnestu arvudeks konverteerida, talletatakse, kuid nende väljastamisel antakse vastav veateade Ülesanne 64 Kirjutada programm, mis loeks käsureal antud failist (selle puudumisel standardsisendist sõnu kuni kokkulepitud lõputunnuseni) sõnu, jaotaks need kahendpuusse ning loendaks iga sõna esinemissageduse Sisendfaili lõppedes või pärast lõputunnuse saamist peab programm väljastama salvestatud sõnad tähestikulises järjekorras koos esinemissagedusega Võtme -o abil on võimalik väljund suunata võtme argumendis antud nimega faili
Mälu interfeisid Arvutikomponendid Ergo Nõmmiste
Mälu interfeisid Arvutikomponendid Ergo Nõmmiste Mälu liigid Read-only memory (ROM) Flash memory (EEPROM) Static random access memory (SRAM) Dynamic random access memoty (DRAM) 1 kbaidine mälu vajab 10
More informationPuudub protseduur. Protseduuri nimi võib olla valesti kirjutatud. Protseduuri (või funktsiooni) poole pöördumisel on vähem argumente kui vaja.
Puudub protseduur. Protseduuri nimi võib olla valesti kirjutatud. Sub prog1() Msgox "Tere" Sub prog2() a = si(1) Protseduuri (või funktsiooni) poole pöördumisel on vähem argumente kui vaja. a = Sin() Protseduuri
More informationDynamic memory allocation
Dynamic memory allocation outline Memory allocation functions Array allocation Matrix allocation Examples Memory allocation functions (#include ) malloc() Allocates a specified number of bytes
More informationMemory (Stack and Heap)
Memory (Stack and Heap) Praktikum C-Programmierung Nathanael Hübbe, Eugen Betke, Michael Kuhn, Jakob Lüttgau, Jannek Squar Wissenschaftliches Rechnen Fachbereich Informatik Universität Hamburg 2018-12-03
More informationDeep C. Multifile projects Getting it running Data types Typecasting Memory management Pointers. CS-343 Operating Systems
Deep C Multifile projects Getting it running Data types Typecasting Memory management Pointers Fabián E. Bustamante, Fall 2004 Multifile Projects Give your project a structure Modularized design Reuse
More informationAndmebaasid (6EAP) I praktikum
Andmebaasid (6EAP) I praktikum Mõisteid Server on arvutisüsteem või selles töötav tarkvara, mis pakub teatud infoteenust sellega ühenduvatele klientidele. Klient on tarkvara, mis võimaldab suhelda serveriga.
More informationUnderstanding Pointers
Division of Mathematics and Computer Science Maryville College Pointers and Addresses Memory is organized into a big array. Every data item occupies one or more cells. A pointer stores an address. A pointer
More informationMemory Management. CS449 Fall 2017
Memory Management CS449 Fall 2017 Life9mes Life9me: 9me from which a par9cular memory loca9on is allocated un9l it is deallocated Three types of life9mes Automa9c (within a scope) Sta9c (dura9on of program)
More informationSQL Server 2005 Expressi paigaldamine
SQL Server 2005 Expressi paigaldamine Laadige alla.net Framework 2.0 http://www.microsoft.com/downloads/details.aspx?familyid=0856eacb-4362-4b0d- 8edd-aab15c5e04f5 Avage http://www.microsoft.com/express/2005/sql/download/default.aspx
More informationMemory Allocation. General Questions
General Questions 1 Memory Allocation 1. Which header file should be included to use functions like malloc() and calloc()? A. memory.h B. stdlib.h C. string.h D. dos.h 2. What function should be used to
More informationFundamental of Programming (C)
Borrowed from lecturer notes by Omid Jafarinezhad Fundamental of Programming (C) Lecturer: Vahid Khodabakhshi Lecture 9 Pointer Department of Computer Engineering 1/46 Outline Defining and using Pointers
More informationDynamic Memory Management. Bin Li Assistant Professor Dept. of Electrical, Computer and Biomedical Engineering University of Rhode Island
Dynamic Memory Management Bin Li Assistant Professor Dept. of Electrical, Computer and Biomedical Engineering University of Rhode Island 1 Dynamic Memory Allocation Dynamic memory allocation is used to
More informationWrite a program that creates in the main function two linked lists of characters and fills them with the following values:
Write a program that creates in the main function two linked lists of characters and fills them with the following values: The first list will have 3 nodes with the following characters: A,B, and C. The
More informationMidterm Exam Nov 8th, COMS W3157 Advanced Programming Columbia University Fall Instructor: Jae Woo Lee.
Midterm Exam Nov 8th, 2012 COMS W3157 Advanced Programming Columbia University Fall 2012 Instructor: Jae Woo Lee About this exam: - There are 4 problems totaling 100 points: problem 1: 30 points problem
More informationMemory Management. CSC215 Lecture
Memory Management CSC215 Lecture Outline Static vs Dynamic Allocation Dynamic allocation functions malloc, realloc, calloc, free Implementation Common errors Static Allocation Allocation of memory at compile-time
More informationLecture 8 Dynamic Memory Allocation
Lecture 8 Dynamic Memory Allocation CS240 1 Memory Computer programs manipulate an abstraction of the computer s memory subsystem Memory: on the hardware side 3 @ http://computer.howstuffworks.com/computer-memory.htm/printable
More informationECE 264 Exam 2. 6:30-7:30PM, March 9, You must sign here. Otherwise you will receive a 1-point penalty.
ECE 264 Exam 2 6:30-7:30PM, March 9, 2011 I certify that I will not receive nor provide aid to any other student for this exam. Signature: You must sign here. Otherwise you will receive a 1-point penalty.
More informationAPS105. Malloc and 2D Arrays. Textbook Chapters 6.4, Datatype Size
APS105 Malloc and 2D Arrays Textbook Chapters 6.4, 10.2 Datatype Size Datatypes have varying size: char: 1B int: 4B double: 8B int sizeof(): a builtin function that returns size of a type int x =
More informationIntroduction to C Programming (Part C) Copyright 2008 W. W. Norton & Company. All rights Reserved
Introduction to C Programming (Part C) Copyright 2008 W. W. Norton & Company. All rights Reserved Overview (King Ch. 13, 22, 16-17) Strings (Ch. 13) Input/Output (Ch. 22) Structures (Ch. 16) Dynamic memory
More informationC PROGRAMMING Lecture 5. 1st semester
C PROGRAMMING Lecture 5 1st semester 2017-2018 Program Address Space The Stack The stack is the place where all local variables are stored a local variable is declared in some scope Example int x; //creates
More informationDynamic memory. EECS 211 Winter 2019
Dynamic memory EECS 211 Winter 2019 2 Initial code setup $ cd eecs211 $ curl $URL211/lec/06dynamic.tgz tar zx $ cd 06dynamic 3 Oops! I made a mistake. In C, the declaration struct circle read_circle();
More informationCS 0449 Sample Midterm
Name: CS 0449 Sample Midterm Multiple Choice 1.) Given char *a = Hello ; char *b = World;, which of the following would result in an error? A) strlen(a) B) strcpy(a, b) C) strcmp(a, b) D) strstr(a, b)
More informationMemory Allocation in C C Programming and Software Tools. N.C. State Department of Computer Science
Memory Allocation in C C Programming and Software Tools N.C. State Department of Computer Science The Easy Way Java (JVM) automatically allocates and reclaims memory for you, e.g... Removed object is implicitly
More informationThese problems are provided to you as a guide for practice. The questions cover important concepts covered in class.
Midterm Written Exam Practice Midterm will cover all concepts covered up to the midterm exam. Concepts of arrays, LL s, pointers (*,**,***), malloc, calloc, realloc, function pointers, Hash tables will
More information19-Nov CSCI 2132 Software Development Lecture 29: Linked Lists. Faculty of Computer Science, Dalhousie University Heap (Free Store)
Lecture 29 p.1 Faculty of Computer Science, Dalhousie University CSCI 2132 Software Development Lecture 29: Linked Lists 19-Nov-2018 Location: Chemistry 125 Time: 12:35 13:25 Instructor: Vlado Keselj Previous
More informationWD My Net N600 juhend:
WD My Net N600 juhend: 1) Kui WD My Net N600 seade on ühendatud näiteks Elioni Thomsoni ruuteriga (TG789vn või TG784) või Elioni Inteno DG301a ruuteriga, kus üldiselt on ruuteri Default Gateway sama, nagu
More informationMPATE-GE 2618: C Programming for Music Technology. Unit 5.1
MPATE-GE 2618: C Programming for Music Technology Unit 5.1 Review: automatic vs. static variables Variables declared and passed to functions are automatic variables. As soon as you leave the function,
More informationContent. In this chapter, you will learn:
ARRAYS & HEAP Content In this chapter, you will learn: To introduce the array data structure To understand the use of arrays To understand how to define an array, initialize an array and refer to individual
More informationDynamically Allocated Memory in C
Dynamically Allocated Memory in C All throughout the C course (COP 3223), all examples of variable declarations were statically allocated memory. The word static means not changing while the word dynamic
More informationCSC209H Lecture 3. Dan Zingaro. January 21, 2015
CSC209H Lecture 3 Dan Zingaro January 21, 2015 Streams (King 22.1) Stream: source of input or destination for output We access a stream through a file pointer (FILE *) Three streams are available without
More informationECE551 Midterm Version 1
Name: ECE551 Midterm Version 1 NetID: There are 7 questions, with the point values as shown below. You have 75 minutes with a total of 75 points. Pace yourself accordingly. This exam must be individual
More informationCMPS 105 Systems Programming. Prof. Darrell Long E2.371
+ CMPS 105 Systems Programming Prof. Darrell Long E2.371 darrell@ucsc.edu + Chapter 7: The Environment of a UNIX process + Introduction + The main() fuction n int main(int argc, char* argv[]); n argc =
More informationMSDE Upgrade platvormile SQL 2005 Server Express SP4
MSDE Upgrade platvormile SQL 2005 Server Express SP4 NB! Windos XP puhul peab veenduma, et masinas oleks paigaldatud.net Framework vähemalt versioon 2.0!!! NB! Muutke oma SA parool turvaliseks ( minimaalne
More informationMis on tõene? Tsüklid, failihaldus. if - näited. unless - näited. unless. Merle Sibola. if ($arv > $suur) { #leitakse suurim arv $suur=$arv; } #if
Mis on tõene? Tsüklid, failihaldus Merle Sibola iga string on tõene, välja arvatud "" ja "0" iga number on tõene, v.a. number 0 Iga viide (reference) on tõene Iga defineerimata muutuja on väär. if if (EXPR)
More informationTsüklidirektiivid. Klass Math. Staatilised meetodid. Massiivid. Koostada programm, mis leiab positiivsete paarisarvude summat vahemikus 1 kuni 20.
Harjutustund 3 Tsüklidirektiivid. Klass Math. Staatilised meetodid. Massiivid. Tsüklidirektiivid Vaadake teooriat eelmisest praktikumist. Ülesanne 1 Koostada programm, mis leiab esimeste 20 arvude summat
More informationComputer Programming Practice (2008 Winter) Practice 10 C Scoping & Pointer
Computer Programming Practice (2008 Winter) Practice 10 C Scoping & Pointer 2009. 1. 16. 2/14 Contents C Scoping Rule Declaration / Definition Single Definition Rule C Pointer & Array Stack implementation
More informationChapter 14. Dynamic Data Structures. Instructor: Öğr. Gör. Okan Vardarlı. Copyright 2004 Pearson Addison-Wesley. All rights reserved.
Chapter 14 Dynamic Data Structures Instructor: Öğr. Gör. Okan Vardarlı Copyright 2004 Pearson Addison-Wesley. All rights reserved. 12-1 Dynamic Data Structure Usually, so far, the arrays and strings we
More informationreturn return else return
compare0.c 1 // Compares two strings' addresses 4 #include 5 6 int main(void) 7 { 8 // get two strings 9 string s = get_string("s: "); 10 string t = get_string("t: "); 11 1 // compare strings'
More informationMemory Management I. two kinds of memory: stack and heap
Memory Management I two kinds of memory: stack and heap stack memory: essentially all non-pointer (why not pointers? there s a caveat) variables and pre-declared arrays of fixed (i.e. fixed before compilation)
More informationENCM 339 Fall 2017 Tutorial for Week 8
ENCM 339 Fall 2017 Tutorial for Week 8 for section T01 Steve Norman, PhD, PEng Electrical & Computer Engineering Schulich School of Engineering University of Calgary 2 November, 2017 ENCM 339 T01 Tutorial
More informationFrom Java to C. Thanks to Randal E. Bryant and David R. O'Hallaron (Carnegie-Mellon University) for providing the basis for these slides
From Java to C Thanks to Randal E. Bryant and David R. O'Hallaron (Carnegie-Mellon University) for providing the basis for these slides 1 Outline Overview comparison of C and Java Good evening Preprocessor
More informationC Pointers. Abdelghani Bellaachia, CSCI 1121 Page: 1
C Pointers 1. Objective... 2 2. Introduction... 2 3. Pointer Variable Declarations and Initialization... 3 4. Reference operator (&) and Dereference operator (*) 6 5. Relation between Arrays and Pointers...
More informationKurt Schmidt. October 30, 2018
to Structs Dept. of Computer Science, Drexel University October 30, 2018 Array Objectives to Structs Intended audience: Student who has working knowledge of Python To gain some experience with a statically-typed
More informationStructures, Unions, and Enumerations
Chapter 16 Structures, Unions, and Enumerations 1 Structure Variables The properties of a structure are different from those of an array. The elements of a structure (its members) aren t required to have
More informationint marks[10]; // fixed size and fixed address No change in Memory address.
Dynamic Memory Allocation : Used When we want to allocate memory during run time. int marks[10]; // fixed size and fixed address No change in Memory address. // fixed size. ( no change in size possible
More informationDynamic Memory Allocation (and Multi-Dimensional Arrays)
Dynamic Memory Allocation (and Multi-Dimensional Arrays) Professor Hugh C. Lauer CS-2303, System Programming Concepts (Slides include materials from The C Programming Language, 2 nd edition, by Kernighan
More informationC Structures & Dynamic Memory Management
C Structures & Dynamic Memory Management Goals of this Lecture Help you learn about: Structures and unions Dynamic memory management Note: Will be covered in precepts as well We look at them in more detail
More informationProgramming. Pointers, Multi-dimensional Arrays and Memory Management
Programming Pointers, Multi-dimensional Arrays and Memory Management Summary } Computer Memory } Pointers } Declaration, assignment, arithmetic and operators } Casting and printing pointers } Relationship
More informationOutline. Lecture 1 C primer What we will cover. If-statements and blocks in Python and C. Operators in Python and C
Lecture 1 C primer What we will cover A crash course in the basics of C You should read the K&R C book for lots more details Various details will be exemplified later in the course Outline Overview comparison
More informationSignature: ECE 551 Midterm Exam
Name: ECE 551 Midterm Exam NetID: There are 7 questions, with the point values as shown below. You have 75 minutes with a total of 75 points. Pace yourself accordingly. This exam must be individual work.
More informationDynamic memory allocation (malloc)
1 Plan for today Quick review of previous lecture Array of pointers Command line arguments Dynamic memory allocation (malloc) Structures (Ch 6) Input and Output (Ch 7) 1 Pointers K&R Ch 5 Basics: Declaration
More informationPOINTER AND ARRAY SUNU WIBIRAMA
POINTER AND ARRAY SUNU WIBIRAMA Presentation Outline Basic Pointer Arrays Dynamic Memory Allocation Basic Pointer 3 Pointers A pointer is a reference to another variable (memory location) in a program
More informationArrays and Memory Management
Arrays and Memory Management 1 Pointing to Different Size Objects Modern machines are byte-addressable Hardware s memory composed of 8-bit storage cells, each has a unique address A C pointer is just abstracted
More informationTP-Link TL-WR743ND Juhend
TP-Link TL-WR743ND Juhend 1) Ühenda oma arvuti TP-Link ruuteriga üle kaabli (LAN). 2) Kui arvuti ja ruuter said omavahel ühendatud, siis võid minna seadme koduleheküljele (interneti brauseri otsingu reasse
More informationCS 31: Intro to Systems Pointers and Memory. Martin Gagne Swarthmore College February 16, 2016
CS 31: Intro to Systems Pointers and Memory Martin Gagne Swarthmore College February 16, 2016 So we declared a pointer How do we make it point to something? 1. Assign it the address of an existing variable
More informationHigh Performance Programming Programming in C part 1
High Performance Programming Programming in C part 1 Anastasia Kruchinina Uppsala University, Sweden April 18, 2017 HPP 1 / 53 C is designed on a way to provide a full control of the computer. C is the
More informationDynamic Data Structures. CSCI 112: Programming in C
Dynamic Data Structures CSCI 112: Programming in C 1 It s all about flexibility In the programs we ve made so far, the compiler knows at compile time exactly how much memory to allocate for each variable
More informationCS61, Fall 2012 Section 2 Notes
CS61, Fall 2012 Section 2 Notes (Week of 9/24-9/28) 0. Get source code for section [optional] 1: Variable Duration 2: Memory Errors Common Errors with memory and pointers Valgrind + GDB Common Memory Errors
More informationXmlHttpRequest asemel võib olla vajalik objekt XDomainRequest
1 2 3 XmlHttpRequest asemel võib olla vajalik objekt XDomainRequest 4 5 6 7 8 https://www.trustwave.com/global-security-report http://redmondmag.com/articles/2012/03/12/user-password-not-sophisticated.aspx
More informationCS 33. Intro to Storage Allocation. CS33 Intro to Computer Systems XXVI 1 Copyright 2017 Thomas W. Doeppner. All rights reserved.
CS 33 Intro to Storage Allocation CS33 Intro to Computer Systems XXVI 1 Copyright 2017 Thomas W. Doeppner. All rights reserved. A Queue head typedef struct list_element { int value; struct list_element
More informationMemory Management. a C view. Dr Alun Moon KF5010. Computer Science. Dr Alun Moon (Computer Science) Memory Management KF / 24
Memory Management a C view Dr Alun Moon Computer Science KF5010 Dr Alun Moon (Computer Science) Memory Management KF5010 1 / 24 The Von Neumann model Memory Architecture One continuous address space Program
More informationDynamic Memory & ADTs in C. The heap. Readings: CP:AMA 17.1, 17.2, 17.3, The primary goal of this section is to be able to use dynamic memory.
Dynamic Memory & ADTs in C Readings: CP:AMA 17.1, 17.2, 17.3, 17.4 The primary goal of this section is to be able to use dynamic memory. CS 136 Winter 2018 10: Dynamic Memory & ADTs 1 The heap The heap
More informationDynamic Memory & ADTs in C
Dynamic Memory & ADTs in C Readings: CP:AMA 17.1, 17.2, 17.3, 17.4 The primary goal of this section is to be able to use dynamic memory. CS 136 Winter 2018 10: Dynamic Memory & ADTs 1 The heap The heap
More informationVIITMUUTUJA. ARVUTI MÄLU PAINDLIK KASUTAMINE
VIITMUUTUJA. ARVUTI MÄLU PAINDLIK KASUTAMINE SISSEJUHATUS Selle teema raames tutvustan ma Teile üht omapärast andmeobjekti VIITMUUTUJAT. Selleks, et järgnevast jutust hästi aru saada, tuleb meelda tuletada
More informationExercise Session 3 Systems Programming and Computer Architecture
Systems Group Department of Computer Science ETH Zürich Exercise Session 3 Systems Programming and Computer Architecture Herbstsemester 2016 Agenda Review of Exercise 2 More on C-Programming Outlook to
More informationCommon Misunderstandings from Exam 1 Material
Common Misunderstandings from Exam 1 Material Kyle Dewey Stack and Heap Allocation with Pointers char c = c ; char* p1 = malloc(sizeof(char)); char** p2 = &p1; Where is c allocated? Where is p1 itself
More informationDynamic Memory Allocation
Dynamic Memory Allocation The process of allocating memory at run time is known as dynamic memory allocation. C does not Inherently have this facility, there are four library routines known as memory management
More informationObjektorienteeritud programmeerimine MTAT (6 EAP) 9. Loeng. H e l le H e i n h e l l e. h ee
Objektorienteeritud programmeerimine MTAT.03.130 (6 EAP) 9. Loeng H e l le H e i n h e l l e. h ein@ut. ee Täna loengus: Erindid Erindite töötlemine Võtmesõnad try, catch, throw, throws, finally, assert
More informationCSE2301. Dynamic memory Allocation. malloc() Dynamic Memory Allocation and Structs
Warning: These notes are not complete, it is a Skelton that will be modified/add-to in the class. If you want to us them for studying, either attend the class or get the completed notes from someone who
More informationInformatsiooni andmeelementide omavaheliste seoste kohta saab, kui vastata järgmistele küsimustele:
Andmestruktuurid Programmid töötlevad andmeid. Neid hoitakse programmi töö jooksul mälus. Andmed pole amorfne arvude ja stringide hulk, vaid neil on omavahel väga olulised struktuursed seosed, mis võivad
More informationDynamic Memory Allocation
Dynamic Memory Allocation Computer Systems Organization (Spring 2017) CSCI-UA 201, Section 3 Instructor: Joanna Klukowska Slides adapted from Randal E. Bryant and David R. O Hallaron (CMU) Mohamed Zahran
More informationC for Java Programmers 1. Last Week. Overview of the differences between C and Java. The C language (keywords, types, functies, etc.
C for Java Programmers 1 Last Week Very short history of C Overview of the differences between C and Java The C language (keywords, types, functies, etc.) Compiling (preprocessor, compiler, linker) C for
More informationHigh-performance computing and programming Intro to C on Unix/Linux. Uppsala universitet
High-performance computing and programming Intro to C on Unix/Linux IT Uppsala universitet What is C? An old imperative language that remains rooted close to the hardware C is relatively small and easy
More informationelse return for return
addresses.c 1 // Prints two strings' addresses 4 #include 5 6 int main(void) 7 { 8 // Get two strings 9 string s = get_string("s: "); 10 string t = get_string("t: "); 11 1 // Print strings' addresses
More informationo Code, executable, and process o Main memory vs. virtual memory
Goals for Today s Lecture Memory Allocation Prof. David August COS 217 Behind the scenes of running a program o Code, executable, and process o Main memory vs. virtual memory Memory layout for UNIX processes,
More informationMODULE 5: Pointers, Preprocessor Directives and Data Structures
MODULE 5: Pointers, Preprocessor Directives and Data Structures 1. What is pointer? Explain with an example program. Solution: Pointer is a variable which contains the address of another variable. Two
More informationint main() { return 0; }
int main() { return 0; % gcc x.c %./a.out % gcc -o x x.c %./x int main() { return 1; 0 % gcc -Wall -o x x.c %./x int main() { printf("hi\n"); return 0; \n #include int main() { printf("hi\n");
More informationArray Initialization
Array Initialization Array declarations can specify initializations for the elements of the array: int primes[10] = { 2, 3, 5, 7, 11, 13, 17, 19, 23, 29 ; initializes primes[0] to 2, primes[1] to 3, primes[2]
More informationArrays and Pointers in C. Alan L. Cox
Arrays and Pointers in C Alan L. Cox alc@rice.edu Objectives Be able to use arrays, pointers, and strings in C programs Be able to explain the representation of these data types at the machine level, including
More informationApproximately a Test II CPSC 206
Approximately a Test II CPSC 206 Sometime in history based on Kelly and Pohl Last name, First Name Last 5 digits of ID Write your section number(s): All parts of this exam are required unless plainly and
More informationDiscussion 3 Richard Guo Advanced C 01/28/09
Discussion 3 Richard Guo Advanced C 01/28/09 1. Answers to Last Time's Problems 1. #include int increment (int ptr); int ptr; // will not actually get used b/c masked by local variables with
More informationProgramming in C. Lecture Tiina Niklander. Faculty of Science
Programming in C Lecture 3 17.9.2018 Tiina Niklander Faculty of Science Department of Computer Science 17.9.2018 1 Week 2 covers Pointer basics operators and address arithmetics as function argument Precedence
More informationDynamic Memory & ADTs in C
Dynamic Memory & ADTs in C Readings: CP:AMA 17.1, 17.2, 17.3, 17.4 CS 136 Fall 2017 10: Dynamic Memory & ADTs 1 The heap The heap is the final section in the C memory model. It can be thought of as a big
More informationThe C Programming Language
The C Programming Language CS 025 Computer Science Fundamentals I Stephen M. Watt University of Western Ontario The C Programming Language A high-level language for writing low-level programs Allows machine-independent
More information4) In C, if you pass an array as an argument to a function, what actually gets passed?
Paytm Programming Sample paper: 1) What will be the output of the program? #include int main() } int y=128; const int x=y; printf("%d\n", x); return 0; a. 128 b. Garbage value c. Error d. 0 2)
More informationC programming for beginners
C programming for beginners Lesson 2 December 10, 2008 (Medical Physics Group, UNED) C basics Lesson 2 1 / 11 Main task What are the values of c that hold bounded? x n+1 = x n2 + c (x ; c C) (Medical Physics
More informationAndmebaasid kursuse andmemudel
Veebiteenused SyBase SQL Anywhere koostanud Sander Sepp SQL Anywhere on andmebaasi juhtsüsteem, mis sisaldab HTTP veebiserveri funktsionaalsust. Veebiserver võimaldab andmebaasi luua veebiteenuseid. Veebiteenused
More informationMemory. What is memory? How is memory organized? Storage for variables, data, code etc. Text (Code) Data (Constants) BSS (Global and static variables)
Memory Allocation Memory What is memory? Storage for variables, data, code etc. How is memory organized? Text (Code) Data (Constants) BSS (Global and static variables) Text Data BSS Heap Stack (Local variables)
More informationContents. A Review of C language. Visual C Visual C++ 6.0
A Review of C language C++ Object Oriented Programming Pei-yih Ting NTOU CS Modified from www.cse.cuhk.edu.hk/~csc2520/tuto/csc2520_tuto01.ppt 1 2 3 4 5 6 7 8 9 10 Double click 11 12 Compile a single source
More informationRobot iehit amise j uhend Mikrokont rolleri programmeerimine C keeles Põhiline C keelest
Robot iehit amise j uhend Mikrokont rolleri programmeerimine C keeles Põhiline C keelest Autorid: Alar Ainla Alvo Aabloo Tartu Ülikool Juhendi koostamist on toetanud EITSA SISUKORD SISUKORD 2 SISSEJUHATUS
More informationBinghamton University. CS-211 Fall Dynamic Memory
Dynamic Memory Static Memory Define variables when we write code When we write the code we decide What the type of the variable is How big array sizes will be etc. These cannot change when we run the code!
More informationProgramming in C. 4. Misc. Library Features, Gotchas, Hints and Tips. Dr. Neel Krishnaswami University of Cambridge
Programming in C 4. Misc. Library Features, Gotchas, Hints and Tips Dr. Neel Krishnaswami University of Cambridge (based on notes from and with thanks to Anil Madhavapeddy, Alan Mycroft, Alastair Beresford
More informationIn Java we have the keyword null, which is the value of an uninitialized reference type
+ More on Pointers + Null pointers In Java we have the keyword null, which is the value of an uninitialized reference type In C we sometimes use NULL, but its just a macro for the integer 0 Pointers are
More informationAdvanced Pointer Topics
Advanced Pointer Topics Pointers to Pointers A pointer variable is a variable that takes some memory address as its value. Therefore, you can have another pointer pointing to it. int x; int * px; int **
More informationProcedural programming with C
Procedural programming with C Dr. C. Constantinides Department of Computer Science and Software Engineering Concordia University Montreal, Canada August 11, 2016 1 / 77 Functions Similarly to its mathematical
More informationch = argv[i][++j]; /* why does ++j but j++ does not? */
CMPS 12M Introduction to Data Structures Lab Lab Assignment 4 The purpose of this lab assignment is to get more practice programming in C, including the character functions in the library ctype.h, and
More informationBinary Search Tree 1.0. Generated by Doxygen Mon Jun :12:39
Binary Search Tree 1.0 Generated by Doxygen 1.7.1 Mon Jun 6 2011 16:12:39 Contents 1 Binary Search Tree Program 1 1.1 Introduction.......................................... 1 2 Data Structure Index 3
More informationHeap Arrays. Steven R. Bagley
Heap Arrays Steven R. Bagley Recap Data is stored in variables Can be accessed by the variable name Or in an array, accessed by name and index a[42] = 35; Variables and arrays have a type int, char, double,
More informationGeneric programming anhtt-fit@mail.hut.edu.vn dungct@it-hut.edu.vn Introduction Generic programming is about generalizing software components so that they can be easily reused in a wide variety of situations.
More informationArrays, Strings, and Pointers
Arrays, Strings, and Pointers Jan Faigl Department of Computer Science Faculty of Electrical Engineering Czech Technical University in Prague Lecture 04 BE5B99CPL C Programming Language Jan Faigl, 2017
More information