Data, memory. Pointers and Dynamic Variables. Example. Pointers Variables (or Pointers) Fall 2018, CS2
|
|
- Sharleen May
- 5 years ago
- Views:
Transcription
1 Data, memor Pointers and Dnamic Variables Fall 2018, CS2 memor address: ever bte is identified b a numeric address in the memor. a data value requiring multiple btes are stored consecutivel in memor cells and identified b the address of the first bte In program we can: find amount of memor (num. of btes) assigned to a variable or a data tpe: sizeof(int), sizeof find the address of a variable: & 1 2 Eample Pointers Variables (or Pointers) int, ; Pointer variables: a variable that stores memor address (of another variable) is used to tell where a variable is stored in memor int takes 4 btes address of is the address of its first bte Pointers "point" to a variable Memor addresses can be used to access variables Arra variable actuall stores address of the first element in arra int a[10]; cout <<a<<endl; cout <<&(a[0])<<endl; When a variable is used as a call-b-reference argument, its address is passed 3 4
2 Declaring Pointers Pointer variables must be declared to have a pointer tpe E: To declare a pointer variable p that can "point" to a variable of tpe double: double *p; The asterisk identifies p as a pointer variable Declaring pointer variables DataTpe * pointervariable; //declare a pointervariable that can be used to point to DataTpe variable int * p; char *cptr; DaOfYear * pdate; //pdate is a pointer pointing to DaOfYear obj double *q; //no space between * and variable name Like other variables, before initialization, p and cptr might contain some arbitrar value So, important to initialize: int *p=null; // assign NULL constant to p, a pointer variable to indicate // that p does not point to an valid data // internall, NULL is value 0. Common pitfall: int *, *; //, are both pointers that point to int int *, ; // is pointer, but is int //* onl applies to the variable that follows it, ; not 6 pointer to different tpes address of Operator DataTpe * pointervariable; //declare a pointervariable that can be used to point to DataTpe variable int * p=null; char *cptr=null; DaOfYear * pdate=null; //pdate is a pointer pointing to DaOfYear obj double *q=null; //no space between * and variable name Pointers to different tpes have same size, sizeof(int *)==sizeof(double *) //8 wh differentiate them? int and double, char, takes different number of btes, and interpret data differentl &variable: ield the address of a variable can then be assigned to a pointer variable int v1; int * ; = &v1; // assign address of v1 to // is now a pointer (pointing) to v1 int a[10]; assert (a==&(a[0])); //arra variable itself stores address 7
3 Eample Tpical laout of a program in memor address name int, ; int *, *; local variables address of : address of : address of : address of : address of 07ffcbf8f5a8c address of 07ffcbf8f5a88 address of 07ffcbf8f5a80 address of 07ffcbf8f5a78 Global variables static variables int a() b(); c(); return 0; Stack and StackFrame Eample int, ; int *, *; int b() return 0; int c() return 0; int main() a(); return 0; =-42; =; 12
4 Eample dereferencing Operator -42 int, ; int *, *; =-42; =; =&; =&; *pointervariable: the variable that pointervariable points to Here the * is dereferencing operator, pointervariable is said to be dereferenced int v1; int *; //this * means is a pointer = &v1; // assign address of v1 to cout << *; //displa the int that points to, i.e, v1 Pitfall/reminder: the contet is important! * used between tpe and name vs. * before a pointer variable 13 Eample int, ; int *, *; -42 =-42; =; =&; =&; Fundamental pointer operations & address-of a variable. Its operand is a variable. eample: int *p; int a=10; p=&a; * variable that a pointer is pointed to. Its operand is a pointer. eample: *p=5; the are used to move back and forth between variables and pointers to those variables. 17 *=17; int *p; *p=5; //the variable pointed to b aptr has to be valid //* is another name of for int *p=null; <=> int *p; p=null; 15 16
5 eample int, ; 17 int *, *; =-42; =; =&; =&; *=17; /* another name of for */ eample int, ; 17 int *, *; =-42; =; =&; =&; *=17; /* another name of for */ 17 =; /* pointer assignment, now two pointers point to the same location*/ *=*; /*value assignment*/ //think of * as another name of the variable points to Usage of pointers Allow one to refer to a large data structure in a compact wa. Each pointer (or memor address) tpicall fits in four btes of memor! Arra: static or dnamic arras Different parts of a program can share same data: passing parameters b reference (passing address between different functions), or b pointers One can reserve new memor in a running program: dnamic memor allocation Build complicated data structures b linking different data items Passing parameters b reference using pointers Suppose we want to set (defined in main() function) to zero, compare the following code: /*pass b value*/ void SetToZero1 (int var) var=0; /*pass b pointer*/ void SetToZero2(int *ip) *ip=0; int main() int =; SetToZero1() SetToZero2 (&); 19 20
6 for main() in our computer s memor int main () =; SetToZero(); int main () =; SetToZero(); var for SetToZero1() in our computer s void SetToZero (int var) var=0; var void SetToZero (int var) var=0; memor of main() int main () =; SetToZero2(&); 0 int main () =; SetToZero(&); ip of SetToZero2 void SetToZero2(int *ip) *ip=0; ip void SetToZero(int *ip) *ip=0; 23 24
7 Passing parameters void SetToZero1 (int var) var=0; SetToZero(); /* has no effect on */ void SetToZero2(int *ip) *ip=0; SetToZero2(&); void SetToZero3 (int & var) var = 0; SetToZero3 (); main SetToZero(); SetToZero(&); SetToZero3(); SetToZero1 var=; var=0; SetToZero2 ip=&;//ip points to *ip=0; SetToZero3 var refers to var=0; //=0 25 Eample write a program to solve quadratic equation: a^2 + b + c = 0; program structure: input phase: accept values of coefficients from users; void GetCoefficients(double *pa, double *pb, double *pc); computation phase: solve the equation based on those coefficients; void SolveQuadratic(double a, double b, double c, double *, double *); output phase: displa the roots of the equation on the screen void DisplaRoots(double 1, double 2); 26 Global Variables Variable Scopes and Lifetimes - a bigger picture about memor used b a program Variables declared outside an function are global variables the have global scope, i.e., the can be accessed b the name from all parts of a program - unless there is an eclipse! the comes into being when program starts, and disappears when program ends ==> static lifetime We discourage the usage of global variables too man cooks in the kitchen: everone can modif it 27
8 Local Variables Variables declared in a function are local variables the have local scope : the can be accessed using the name from the function/block The are tpicall created when the function is called, and destroed when the function call ends ==> automatic lifetime Local variable with static lifetime? void some_func() static int counter=0; //created at program starts, //destroed when program ends counter++; cout <<"called " << counter<<" times\n ; // Dnamic Variables Programmer/Code can create variables and then destro them using operators new and delete e.g., such variables are dnamic variables, their lifetime is dnamic (decided at running time, based upon running time condition). The have no name. int *; //declare a pointer variable = new int; //create a int variable, save its address in This variable can onl be referred b address (as it has no name), * * can be used an place an integer variable can cin >> *; * = * + 7; Displa 9.2 Displa
9 Caution! Pointer Assignments Basic Memor Management Some care is required making assignments to pointer variables = p3; // changes the location that "points" to * = *p3; // changes the value at the location that // "points" to An area of memor called the freestore/heap is reserved for dnamic variables New dnamic variables use memor in the freestore If all of the freestore is used, calls to new will fail Unneeded memor can be reccled When variables are no longer needed, the need to be deleted and the memor the used is returned to the freestore delete Operator When dnamic variables are no longer needed, delete them to reccle memor to freestore e.g., delete p; memor used b the variable that p pointed to is back in freestore. p still stores that address. *p=10; // Disaster!!! p = NULL; //value of p is now NULL Dangling Pointers Using delete on a pointer variable destros the dnamic variable pointed to If another pointer variable was pointing to the dnamic variable, that variable is also undefined Undefined pointer variables are called dangling pointers Dereferencing a dangling pointer (*p) is usuall disasterous
10 Tpe Definitions Defining Pointer Tpes A name can be assigned to a tpe definition, then used to declare variables The keword tpedef is used to define new tpe names Snta: tpedef Known_Tpe_Definition New_Tpe_Name; Known_Tpe_Definition can be an tpe To avoid mistakes using pointers, define a pointer tpe name Eample: tpedef int* IntPtr; Defines a new tpe, IntPtr, for pointer variables containing pointers to int variables IntPtr p; is equivalent to int *p; Multiple Declarations Again Pointer Reference Parameters Using our new pointer tpe defined as tpedef int* IntPtr; Then, we can prevent this error in pointer declaration: int *P1, P2;//Onl P1 is a pointer variable with IntPtr P1, P2; // P1 and P2 are pointer variables A second advantage in using tpedef to define a pointer tpe is seen in parameter lists Eample: void sample_function(intptr& pointer_var); is less confusing than void sample_function( int*& pointer_var);
What have we learned about when we learned about function parameters? 1-1
What have we learned about when we learned about function parameters? 1-1 What have we learned about when we learned about function parameters? Call-by-Value also known as scalars (eg. int, double, char,
More informationChapter 9. Pointers and Dynamic Arrays
Chapter 9 Pointers and Dynamic Arrays Overview 9.1 Pointers 9.2 Dynamic Arrays Slide 9-2 9.1 Pointers Pointers n A pointer is the memory address of a variable n Memory addresses can be used as names for
More informationChapter Overview. Pointers and Dynamic Arrays. Pointers. Pointers. Declaring Pointers. Pointers Tell Where To Find A Variable. 9.
Chapter 9 Pointers and Dynamic Arrays Overview 9.1 Pointers 9.2 Dynamic Arrays Copyright 2011 Pearson Addison-Wesley. All rights reserved. Slide Revised by Zuoliu Ding at Fullerton College, Fall 2011 Slide
More informationPointers and Dynamic Arrays
Pointers and Dynamic Arrays Pointers A pointer is the memory address of a variable Memory addresses can be used as names for variables If a variable is stored in three memory locations, the address of
More informationIn this chapter, you will learn about: Pointers. Dynamic Arrays. Introduction Computer Science 1 CS 23021
Chapter 9 In this chapter, you will learn about: Pointers Dynamic Arrays Address A pointer is the memory address of a variable 1022 1023 x Recall, Computer memory is divided into cells (or bytes) 1024
More informationCA31-1K DIS. Pointers. TA: You Lu
CA31-1K DIS Pointers TA: You Lu Pointers Recall that while we think of variables by their names like: int numbers; Computer likes to think of variables by their memory address: 0012FED4 A pointer is a
More informationLecture 14. No in-class files today. Homework 7 (due on Wednesday) and Project 3 (due in 10 days) posted. Questions?
Lecture 14 No in-class files today. Homework 7 (due on Wednesday) and Project 3 (due in 10 days) posted. Questions? Friday, February 11 CS 215 Fundamentals of Programming II - Lecture 14 1 Outline Static
More informationHomework Assignment #1
CISC 2200 Data Structure Fall, 2016 Homework Assignment #1 1 The mistery of lossing one cent. Please refer to the lab1 instruction for an example floating value ($2.34), and how the cents part extracted
More informationHomework #3 CS2255 Fall 2012
Homework #3 CS2255 Fall 2012 MULTIPLE CHOICE 1. The, also known as the address operator, returns the memory address of a variable. a. asterisk ( * ) b. ampersand ( & ) c. percent sign (%) d. exclamation
More informationCS S-11 Memory Management 1
CS414-2017S-11 Management 1 11-0: Three places in memor that a program can store variables Call stack Heap Code segment 11-1: Eecutable Code Code Segment Static Storage Stack Heap 11-2: Three places in
More informationVectors and Pointers CS 16: Solving Problems with Computers I Lecture #13
Vectors and Pointers CS 16: Solving Problems with Computers I Lecture #13 Ziad Matni Dept. of Computer Science, UCSB Announcements Midterm grades will be available on Tuesday, 11/21 If you *need* to know
More informationWhy Pointers. Pointers. Pointer Declaration. Two Pointer Operators. What Are Pointers? Memory address POINTERVariable Contents ...
Why Pointers Pointers They provide the means by which functions can modify arguments in the calling function. They support dynamic memory allocation. They provide support for dynamic data structures, such
More informationFirst of all, it is a variable, just like other variables you studied
Pointers: Basics What is a pointer? First of all, it is a variable, just like other variables you studied So it has type, storage etc. Difference: it can only store the address (rather than the value)
More informationDeclaring Pointers. Declaration of pointers <type> *variable <type> *variable = initial-value Examples:
1 Programming in C Pointer Variable A variable that stores a memory address Allows C programs to simulate call-by-reference Allows a programmer to create and manipulate dynamic data structures Must be
More informationWhat is an algorithm?
Announcements CS 142 C++ Pointers Reminder Program 6 due Sunday, Nov. 9 th by 11:55pm 11/3/2014 2 Pointers and the Address Operator Pointer Variables Each variable in a program is stored at a unique address
More informationTypical Compiler. Ahead- of- time compiler. Compilers... that target interpreters. Interpreter 12/9/15. compile time. run time
Ahead- of- time Tpical Compiler compile time C source C 86 assembl 86 assembler 86 machine Source Leical Analzer Snta Analzer Semantic Analzer Analsis Intermediate Code Generator Snthesis run time 86 machine
More informationClasses. Compiling Methods. Code Generation for Objects. Implementing Objects. Methods. Fields
Classes Implementing Objects Components fields/instance variables values differ from to usuall mutable methods values shared b all s of a class usuall immutable component visibilit: public/private/protected
More informationa data type is Types
Pointers Class 2 a data type is Types Types a data type is a set of values a set of operations defined on those values in C++ (and most languages) there are two flavors of types primitive or fundamental
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 informationProgramming Language Dilemma Fall 2002 Lecture 1 Introduction to Compilation. Compilation As Translation. Starting Point
Programming Language Dilemma 6.035 Fall 2002 Lecture 1 Introduction to Compilation Martin Rinard Laborator for Computer Science Massachusetts Institute of Technolog Stored program computer How to instruct
More informationHomework Assignment #2 (revised)
CISC 2000 Computer Science II Fall, 2018 1 Recall the following functions and operators: Homework Assignment #2 (revised) sizeof function: returns the size of a variable (i.e., the number of bytes used
More informationC++ for Java Programmers
Lecture 6 More pointing action Yesterday we considered: Pointer Assignment Dereferencing Pointers to Pointers to Pointers Pointers and Array Pointer Arithmetic 2 Todays Lecture What do we know 3 And now
More informationSection 9.3: Functions and their Graphs
Section 9.: Functions and their Graphs Graphs provide a wa of displaing, interpreting, and analzing data in a visual format. In man problems, we will consider two variables. Therefore, we will need to
More informationCS 261 Fall C Introduction. Variables, Memory Model, Pointers, and Debugging. Mike Lam, Professor
CS 261 Fall 2017 Mike Lam, Professor C Introduction Variables, Memory Model, Pointers, and Debugging The C Language Systems language originally developed for Unix Imperative, compiled language with static
More informationChapter 10 Pointers and Dynamic Arrays. GEDB030 Computer Programming for Engineers Fall 2017 Euiseong Seo
Chapter 10 Pointers and Dynamic Arrays 1 Learning Objectives Pointers Pointer variables Memory management Dynamic Arrays Creating and using Pointer arithmetic Classes, Pointers, Dynamic Arrays The this
More informationAnnouncements. CSCI 334: Principles of Programming Languages. Lecture 19: C++
Announcements CSCI 4: Principles of Programming Languages Lecture 19: C++ HW8 pro tip: the HW7 solutions have a complete, correct implementation of the CPS version of bubble sort in SML. All ou need to
More informationPointer Data Type and Pointer Variables
Pointer Data Type and Pointer Variables Pointer variable: content is a memory address There is no name associated with the pointer data type in C++. Declaring Pointer Variables Syntax: Data-type *identifier
More informationSemantics (cont.) Symbol Table. Static Scope. Static Scope. Static Scope. CSE 3302 Programming Languages. Static vs. Dynamic Scope
-2-1 CSE 3302 Programming Languages Semantics (cont.) Smbol Table Smbol Table: maintain bindings. Can be viewed as functions that map names to their attributes. Names SmbolTable Attributes Chengkai Li,
More informationExam 3 Chapters 7 & 9
Exam 3 Chapters 7 & 9 CSC 2100-002/003 29 Mar 2017 Read through the entire test first BEFORE starting Put your name at the TOP of every page The test has 4 sections worth a total of 100 points o True/False
More informationReference operator (&)
Pointers Each cell can be easily located in the memory because it has a unique address and all the memory cells follow a successive pattern. For example, if we are looking for cell 1776 we know that it
More informationTHE GOOD, BAD AND UGLY ABOUT POINTERS. Problem Solving with Computers-I
THE GOOD, BAD AND UGLY ABOUT POINTERS Problem Solving with Computers-I The good: Pointers pass data around efficiently Pointers and arrays 100 104 108 112 116 ar 20 30 50 80 90 ar is like a pointer to
More information[0569] p 0318 garbage
A Pointer is a variable which contains the address of another variable. Declaration syntax: Pointer_type *pointer_name; This declaration will create a pointer of the pointer_name which will point to the
More informationINITIALISING POINTER VARIABLES; DYNAMIC VARIABLES; OPERATIONS ON POINTERS
INITIALISING POINTER VARIABLES; DYNAMIC VARIABLES; OPERATIONS ON POINTERS Pages 792 to 800 Anna Rakitianskaia, University of Pretoria INITIALISING POINTER VARIABLES Pointer variables are declared by putting
More informationCS 403 Compiler Construction Lecture 8 Syntax Tree and Intermediate Code Generation [Based on Chapter 6 of Aho2] This Lecture
CS 403 Compiler Construction Lecture 8 Snta Tree and Intermediate Code Generation [Based on Chapter 6 of Aho2] 1 This Lecture 2 1 Remember: Phases of a Compiler This lecture: Intermediate Code This lecture:
More informationMemory and C++ Pointers
Memory and C++ Pointers C++ objects and memory C++ primitive types and memory Note: primitive types = int, long, float, double, char, January 2010 Greg Mori 2 // Java code // in function, f int arr[];
More informationSYSC 2006 C Winter 2012
SYSC 2006 C Winter 2012 Pointers and Arrays Copyright D. Bailey, Systems and Computer Engineering, Carleton University updated Sept. 21, 2011, Oct.18, 2011,Oct. 28, 2011, Feb. 25, 2011 Memory Organization
More informationChapter 10. Pointers and Dynamic Arrays. Copyright 2016 Pearson, Inc. All rights reserved.
Chapter 10 Pointers and Dynamic Arrays Copyright 2016 Pearson, Inc. All rights reserved. Learning Objectives Pointers Pointer variables Memory management Dynamic Arrays Creating and using Pointer arithmetic
More informationC Introduction. Comparison w/ Java, Memory Model, and Pointers
CS 261 Fall 2018 Mike Lam, Professor C Introduction Comparison w/ Java, Memory Model, and Pointers Please go to socrative.com on your phone or laptop, choose student login and join room LAMJMU The C Language
More informationStructures and Pointers
Structures and Pointers Comp-206 : Introduction to Software Systems Lecture 11 Alexandre Denault Computer Science McGill University Fall 2006 Note on Assignment 1 Please note that handin does not allow
More informationAt this time we have all the pieces necessary to allocate memory for an array dynamically. Following our example, we allocate N integers as follows:
Pointers and Arrays Part II We will continue with our discussion on the relationship between pointers and arrays, and in particular, discuss how arrays with dynamical length can be created at run-time
More informationDECLARAING AND INITIALIZING POINTERS
DECLARAING AND INITIALIZING POINTERS Passing arguments Call by Address Introduction to Pointers Within the computer s memory, every stored data item occupies one or more contiguous memory cells (i.e.,
More informationIncoming Exam. CS 201 Introduction to Pointers. What is a Pointer? Pointers and Addresses. High Speed Memory (RAM) Size of Variable Types.
Incoming Exam CS 0 Introduction to Pointers Debzani Deb Next Monday (th March), we will have Exam # Closed book Sit with an empty space in either side of you Calculators that have text-allowing is not
More informationUEE1302 (1102) F10 Introduction to Computers and Programming (I)
Computational Intelligence on Automation Lab @ NCTU UEE1302 (1102) F10 Introduction to Computers and Programming (I) Programming Lecture 10 Pointers & Dynamic Arrays (I) Learning Objectives Pointers Data
More informationWhat is Pointer? Pointer is a variable that holds a memory address, usually location of another variable.
CHAPTER 08 POINTERS What is Pointer? Pointer is a variable that holds a memory address, usually location of another variable. The Pointers are one of the C++ s most useful and powerful features. How Pointers
More informationSection 4.2 Graphing Lines
Section. Graphing Lines Objectives In this section, ou will learn to: To successfull complete this section, ou need to understand: Identif collinear points. The order of operations (1.) Graph the line
More informationFORM 2 (Please put your name and form # on the scantron!!!!)
CS 161 Exam 2: FORM 2 (Please put your name and form # on the scantron!!!!) True (A)/False(B) (2 pts each): 1. Recursive algorithms tend to be less efficient than iterative algorithms. 2. A recursive function
More informationMemory and Addresses. Pointers in C. Memory is just a sequence of byte-sized storage devices.
Memory and Addresses Memory is just a sequence of byte-sized storage devices. 1 The bytes are assigned numeric addresses, starting with zero, just like the indexing of the cells of an array. It is the
More informationLanguage comparison. C has pointers. Java has references. C++ has pointers and references
Pointers CSE 2451 Language comparison C has pointers Java has references C++ has pointers and references Pointers Values of variables are stored in memory, at a particular location A location is identified
More informationPointers. 1 Background. 1.1 Variables and Memory. 1.2 Motivating Pointers Massachusetts Institute of Technology
Introduction to C++ Massachusetts Institute of Technology ocw.mit.edu 6.096 Pointers 1 Background 1.1 Variables and Memory When you declare a variable, the computer associates the variable name with a
More information2.3. One-to-One and Inverse Functions. Introduction. Prerequisites. Learning Outcomes
One-to-One and Inverse Functions 2. Introduction In this Section we eamine more terminolog associated with functions. We eplain one-to-one and man-to-one functions and show how the rule associated with
More informationChapter 9: Pointers Co C pyr py igh i t gh Pear ea so s n n E ducat ca io i n, n Inc. n c.
Chapter 9: Pointers 9.1 Getting the Address of a Variable C++ Variables [ not in book ] A Variable has all of the following attributes: 1. name 2. type 3. size 4. value 5. storage class static or automatic
More informationCS24 Week 2 Lecture 1
CS24 Week 2 Lecture 1 Kyle Dewey Overview C Review Void pointers Allocation structs void* (Void Pointers) void* Like any other pointer, it refers to some memory address However, it has no associated type,
More informationCS162 - POINTERS. Lecture: Pointers and Dynamic Memory
CS162 - POINTERS Lecture: Pointers and Dynamic Memory What are pointers Why dynamically allocate memory How to dynamically allocate memory What about deallocation? Walk thru pointer exercises 1 CS162 -
More informationWinter Compiler Construction T9 IR part 2 + Runtime organization. Announcements. Today. Know thy group s code
Winter 26-27 Compiler Construction T9 IR part 2 + Runtime organization Mool Sagiv and Roman Manevich School of Computer Science Tel-Aviv Universit Announcements What is epected in PA3 documentation (5
More informationPointers (part 1) What are pointers? EECS We have seen pointers before. scanf( %f, &inches );! 25 September 2017
Pointers (part 1) EECS 2031 25 September 2017 1 What are pointers? We have seen pointers before. scanf( %f, &inches );! 2 1 Example char c; c = getchar(); printf( %c, c); char c; char *p; c = getchar();
More information9.2 Pointer Variables. Pointer Variables CS Pointer Variables. Pointer Variables. 9.1 Getting the Address of a. Variable
CS 1400 Chapter 9 9.1 Getting the Address of a Variable A variable has: Name Value Location in a memory Type The location in memory is an address Use address operator & to get address of a variable: int
More informationConstants, References
CS 246: Software Abstraction and Specification Constants, References Readings: Eckel, Vol. 1 Ch. 8 Constants Ch. 11 References and the Copy Constructor U Waterloo CS246se (Spring 2011) p.1/14 Uses of const
More informationAlgorithms & Data Structures
GATE- 2016-17 Postal Correspondence 1 Algorithms & Data Structures Computer Science & Information Technology (CS) 20 Rank under AIR 100 Postal Correspondence Examination Oriented Theory, Practice Set Key
More informationCS201- Introduction to Programming Current Quizzes
CS201- Introduction to Programming Current Quizzes Q.1 char name [] = Hello World ; In the above statement, a memory of characters will be allocated 13 11 12 (Ans) Q.2 A function is a block of statements
More informationModern C++ for Computer Vision and Image Processing. Igor Bogoslavskyi
Modern C++ for Computer Vision and Image Processing Igor Bogoslavskyi Outline Using pointers Pointers are polymorphic Pointer this Using const with pointers Stack and Heap Memory leaks and dangling pointers
More informationPointers CMPE-013/L. Pointers. Pointers What do they do? Pointers What are pointers? Gabriel Hugh Elkaim Winter 2014
CMPE-013/L A Variable's versus A Variable's Value In some situations, we will want to work with a variable's address in memor, rather than the value it contains Gabriel Hugh Elkaim Winter 2014 Variable
More informationTutorial 10 Pointers in C. Shuyue Hu
Tutorial 10 Pointers in C Shuyue Hu Content Basic concept of pointers Pointer arithmetic Array of pointers Pointer to pointer Passing pointers to functions in C Return pointer from functions in C 2 Content
More informationCS113: Lecture 5. Topics: Pointers. Pointers and Activation Records
CS113: Lecture 5 Topics: Pointers Pointers and Activation Records 1 From Last Time: A Useless Function #include void get_age( int age ); int age; get_age( age ); printf( "Your age is: %d\n",
More informationVariables, Memory and Pointers
Variables, Memory and Pointers A variable is a named piece of memory The name stands in for the memory address int num; Variables, Memory and Pointers When a value is assigned to a variable, it is stored
More informationArrays and Pointers. CSE 2031 Fall November 11, 2013
Arrays and Pointers CSE 2031 Fall 2013 November 11, 2013 1 Arrays l Grouping of data of the same type. l Loops commonly used for manipulation. l Programmers set array sizes explicitly. 2 Arrays: Example
More informationCSC 211 Intermediate Programming. Pointers
CSC 211 Intermediate Programming Pointers 1 Purpose Pointers enable programs to simulate call-by-reference; to create and manipulate dynamic data structures, i.e. data structures that can grow and shrink,
More informationCS 2461: Computer Architecture I
Next: Pointers, Arrays, Structs... : Computer Architecture I The real fun stuff in C.. Pointers and Arrays Read Chapters 16, 18 of text Functions, Arrays, Pointers Dynamic data structures Allocating space
More informationhttps://lambda.mines.edu A pointer is a value that indicates location in memory. When we change the location the pointer points to, we say we assign the pointer a value. When we look at the data the pointer
More informationArrays and Pointers (part 1)
Arrays and Pointers (part 1) CSE 2031 Fall 2012 Arrays Grouping of data of the same type. Loops commonly used for manipulation. Programmers set array sizes explicitly. Arrays: Example Syntax type name[size];
More informationPointers and Strings Chapters 10, Pointers and Arrays (10.3) 3.2 Pointers and Arrays (10.3) An array of ints can be declared as
Pointers and Strings Chapters 10, 12 2/5/07 CS250 Introduction to Computer Science II 1 3.1 Pointers and Arrays (10.3) An array of ints can be declared as o int numbers[] = 1, 2, 3, 4, 5; numbers is also
More informationArrays and Pointers (part 1)
Arrays and Pointers (part 1) CSE 2031 Fall 2010 17 October 2010 1 Arrays Grouping of data of the same type. Loops commonly used for manipulation. Programmers set array sizes explicitly. 2 1 Arrays: Example
More informationPointers. Reference operator (&) ted = &andy;
Pointers We have already seen how variables are seen as memory cells that can be accessed using their identifiers. This way we did not have to care about the physical location of our data within memory,
More informationIntroduction to Programming in C Department of Computer Science and Engineering. Lecture No. #33 Pointer Arithmetic
Introduction to Programming in C Department of Computer Science and Engineering Lecture No. #33 Pointer Arithmetic In this video let me, so some cool stuff which is pointer arithmetic which helps you to
More informationBuilding up a language SICP Variations on a Scheme. Meval. The Core Evaluator. Eval. Apply. 2. syntax procedures. 1.
6.001 SICP Variations on a Scheme Scheme Evaluator A Grand Tour Techniques for language design: Interpretation: eval/appl Semantics vs. snta Sntactic transformations Building up a language... 3. 1. eval/appl
More informationWeek 3 Lecture 2. Types Constants and Variables
Lecture 2 Types Constants and Variables Types Computers store bits: strings of 0s and 1s Types define how bits are interpreted They can be integers (whole numbers): 1, 2, 3 They can be characters 'a',
More informationCS 376b Computer Vision
CS 376b Computer Vision 09 / 25 / 2014 Instructor: Michael Eckmann Today s Topics Questions? / Comments? Enhancing images / masks Cross correlation Convolution C++ Cross-correlation Cross-correlation involves
More informationProgramming in C/C Lecture 2
Programming in C/C++ 2005-2006 Lecture 2 http://few.vu.nl/~nsilvis/c++/2006 Natalia Silvis-Cividjian e-mail: nsilvis@few.vu.nl vrije Universiteit amsterdam News Check announcements on the C/C++ website
More informationOutput of sample program: Size of a short is 2 Size of a int is 4 Size of a double is 8
Pointers Variables vs. Pointers: A variable in a program is something with a name and a value that can vary. The way the compiler and linker handles this is that it assigns a specific block of memory within
More informationPointers and Arrays CS 201. This slide set covers pointers and arrays in C++. You should read Chapter 8 from your Deitel & Deitel book.
Pointers and Arrays CS 201 This slide set covers pointers and arrays in C++. You should read Chapter 8 from your Deitel & Deitel book. Pointers Powerful but difficult to master Used to simulate pass-by-reference
More informationCS201 Latest Solved MCQs
Quiz Start Time: 09:34 PM Time Left 82 sec(s) Question # 1 of 10 ( Start time: 09:34:54 PM ) Total Marks: 1 While developing a program; should we think about the user interface? //handouts main reusability
More informationIntroduction to Scientific Computing and Problem Solving
Introduction to Scientific Computing and Problem Solving Lecture #22 Pointers CS4 - Introduction to Scientific Computing and Problem Solving 2010-22.0 Announcements HW8 due tomorrow at 2:30pm What s left:
More informationCS61C Machine Structures. Lecture 4 C Pointers and Arrays. 1/25/2006 John Wawrzynek. www-inst.eecs.berkeley.edu/~cs61c/
CS61C Machine Structures Lecture 4 C Pointers and Arrays 1/25/2006 John Wawrzynek (www.cs.berkeley.edu/~johnw) www-inst.eecs.berkeley.edu/~cs61c/ CS 61C L04 C Pointers (1) Common C Error There is a difference
More informationAgenda. Peer Instruction Question 1. Peer Instruction Answer 1. Peer Instruction Question 2 6/22/2011
CS 61C: Great Ideas in Computer Architecture (Machine Structures) Introduction to C (Part II) Instructors: Randy H. Katz David A. Patterson http://inst.eecs.berkeley.edu/~cs61c/sp11 Spring 2011 -- Lecture
More informationImplicit differentiation
Roberto s Notes on Differential Calculus Chapter 4: Basic differentiation rules Section 5 Implicit differentiation What ou need to know alread: Basic rules of differentiation, including the chain rule.
More informationArrays and Pointers. Arrays. Arrays: Example. Arrays: Definition and Access. Arrays Stored in Memory. Initialization. EECS 2031 Fall 2014.
Arrays Arrays and Pointers l Grouping of data of the same type. l Loops commonly used for manipulation. l Programmers set array sizes explicitly. EECS 2031 Fall 2014 November 11, 2013 1 2 Arrays: Example
More informationBinghamton University. CS-211 Fall Pointers
Pointers 1 What is a pointer? Says I m not important what s important is over there Points AT or TO something else 2 Memory Array of bytes Each element has a value 0 1 2 3 xffff fffd xffff fffe xffff ffff
More informationContents of Lecture 3
Contents of Lecture 3 Repetition of matrices double a[3][4]; double* b; double** c; Terminology Linkage Types Conversions Jonas Skeppstedt (js@cs.lth.se) Lecture 3 2014 1 / 33 A global matrix: double a[3][4]
More informationCompiler construction
This lecture Compiler construction Lecture 5: Project etensions Magnus Mreen Spring 2018 Chalmers Universit o Technolog Gothenburg Universit Some project etensions: Arras Pointers and structures Object-oriented
More informationCS2141 Software Development using C/C++ C++ Basics
CS2141 Software Development using C/C++ C++ Basics Integers Basic Types Can be short, long, or just plain int C++ does not define the size of them other than short
More informationC++ for Java Programmers
Basics all Finished! Everything we have covered so far: Lecture 5 Operators Variables Arrays Null Terminated Strings Structs Functions 1 2 45 mins of pure fun Introduction Today: Pointers Pointers Even
More informationNote 12/1/ Review of Inheritance Practice: Please write down 10 most important facts you know about inheritance...
CISC 2000 Computer Science II Fall, 2014 Note 12/1/2014 1 Review of Inheritance Practice: Please write down 10 most important facts you know about inheritance... (a) What s the purpose of inheritance?
More informationClass Information ANNOUCEMENTS
Class Information ANNOUCEMENTS Third homework due TODAY at 11:59pm. Extension? First project has been posted, due Monday October 23, 11:59pm. Midterm exam: Friday, October 27, in class. Don t forget to
More informationPointers and scanf() Steven R. Bagley
Pointers and scanf() Steven R. Bagley Recap Programs are a series of statements Defined in functions Can call functions to alter program flow if statement can determine whether code gets run Loops can
More informationPage. No. 1/15 CS201 Introduction to Programmming Solved Subjective Questions From spring 2010 Final Term Papers By vuzs Team
Page. No. 1/15 CS201 Introduction to Programmming Solved Subjective Questions From spring 2010 Final Term Papers By vuzs Team Question No: 1 ( Marks: 2 ) Write a declaration statement for an array of 10
More informationBasic Pointers. CSCI 112: Programming in C
Basic Pointers CSCI 112: Programming in C What the #$@# is a pointer? Pointers are variables Instead of holding values, they hold the address of another variable. They point to where that other variable
More informationLargest Online Community of VU Students
WWW.VUPages.com http://forum.vupages.com WWW.VUTUBE.EDU.PK Largest Online Community of VU Students MIDTERM EXAMINATION SEMESTER FALL 2003 CS301-DATA STRUCTURE Total Marks:86 Duration: 60min Instructions
More informationC: Pointers. C: Pointers. Department of Computer Science College of Engineering Boise State University. September 11, /21
Department of Computer Science College of Engineering Boise State University September 11, 2017 1/21 Pointers A pointer is a variable that stores the address of another variable. Pointers are similar to
More information12. Pointers Address-of operator (&)
12. Pointers In earlier chapters, variables have been explained as locations in the computer's memory which can be accessed by their identifer (their name). This way, the program does not need to care
More informationBefore we start - Announcements: There will be a LAB TONIGHT from 5:30 6:30 in CAMP 172. In compensation, no class on Friday, Jan. 31.
Before we start - Announcements: There will be a LAB TONIGHT from 5:30 6:30 in CAMP 172 The lab will be on pointers In compensation, no class on Friday, Jan. 31. 1 Consider the bubble function one more
More informationPointer Basics. Lecture 13 COP 3014 Spring March 28, 2018
Pointer Basics Lecture 13 COP 3014 Spring 2018 March 28, 2018 What is a Pointer? A pointer is a variable that stores a memory address. Pointers are used to store the addresses of other variables or memory
More information