llllllllllllllilllllllllllllllll l lllllllllllllllllllllllllllllllllllllll

Size: px
Start display at page:

Download "llllllllllllllilllllllllllllllll l lllllllllllllllllllllllllllllllllllllll"

Transcription

1 United States Patent [19] Goodnow, II at al. llllllllllllllilllllllllllllllll l lllllllllllllllllllllllllllllllllllllll USOO A [11] Patent Number: 5,590,329 [45] Date of Patent: Dec. 31, 1996 [54] METHOD AND APPARATUS FOR DETECTING lviemory ACCESS ERRORS [75] Inventors: James E. Goodnow, H, Grass Valley, Calif.; Thaddeus J. Kowalski, Summit; James R. Rowland, Short Hills, both of NJ. [73] Assignee: Lucent Technologies Inc., Murray Hill, N1. [21] Appl. No.: 192,239 [22] Filed: Feb. 4, 1994 [51] Int. Cl G06F 11/08 [52] US. Cl. 395/708 [58] Field of Search /650, 700, 395/575 [56] References Cited U.S. PATENT DOCUMENTS 5,107,418 4/1992 Crarner et al /700 5,193,180 5,313,387 5/1994 3/1993 5,335,344 8/1994 5,355,469 10/1994 5,361,351 11/1994 5,432,936 7/1995 OTHER PUBLICATIONS Kanfer et al., Saber-C An Interpreter-based Programming Environment for the C Language, Jun , 1988, pp. 16l 17l. Landi et al., Aliasing with and without pointers: A Problem Taxonomy Sep. 25, 1990, pp. l-55. Landi et al., A Safe Approximate Algorithm for Interpro cedural Pointer Aliasing, Jul., 1992, pp Sulzman, Saber C ; A Sharp Programming Tool, Feb. 1990, pp. l Steffen, Adding Run-Time Checking to the Portable C Compiler, Apr. 1992, pp l6. Hipkins, Steven, The case of the Troublesome Switch (Case Study of Debugging application Software), Oct. 1, 1992, p. 39. C Users Journal, Nu-Mega Announces Bounds Checker 2.0, for MS DOS Memory Protections, p Primary Examiner-Kevin A. Kriess Assistant Examiner l0hn I. Chavis [571 ABSTRACT Disclosed is a software generation system (SGS) based memory error detection system which may be utilized to detect various memory access errors, such as array dimen sion violations, dereferencing of invalid pointers, accessing freed memory, reading uninitialized memory, and automated detection of memory leaks. Error checking commands and additional information are inserted into a parse tree associ ated with a source code?le being tested at read time which serve to initiate and facilitate run-time error detection pro cesses. Wrapper functions may be provided for initiating error checking processes for associated library functions. A pointer check table maintains pointer information, including valid range information, for each pointer that is utilized to monitor the use and modi?cation of the respective pointers. A memory allocation structure records allocation informa tion, including a chain list of all pointers that point to the memory region and an initialization status for each byte in the memory region, for each region of memory. The chain list is utilized to monitor the deallocation of the associated memory region, as well as to detect when there is a memory leak. The initialization status is used to ensure that a region of uninitialized memory is not accessed. A data?ow analysis algorithm minimizes the number of pointer checks that have to be performed and allows certain read-time errors to be detected. 12 Claims, 19 Drawing Sheets 310 IS there a me ulccde? No Q 320 Is a pointer assigned a value in lhls line of code? No Q 337 S ldenl?y any allocated memory malfunction may access and." r.52! flag in inlemal sy liable Perfoml data flow analysis 350% to reduce the number of pointer checks performed at rurhime Insert a ptrchk command for respective pulnler in parse tree Are there addln'unal pointer dereferenees in line cl parse tree being evaluated?

2

3

4 US. Patent Dec. 31, 1996 Sheet 3 0f 19 5,590,329 [ TestfIIe I10 struct part { I20 Int number; I30 char name [10]; I40 } widget; I50 struct part *ptr_part; '60 ptr_part = &widget; I70 int testint = 16394; FIG 2b I80 char testchar = 88; ' '90 int *ptr testint = &testint; I100 char *ptr_testchar = &testchar; I210 Char *ptr_a oc; ptr_aiioc = maiioc (35 *sizeof (char)); I300 ptr_testchar = &widget.name[0]; 310 *ptr_testint = 12024;

5 U.S. Patent Dec. 31, 1996 Sheet 4 of 19 5,590,329 FIG. 20% K lines widgetnumber widget.name A??\ ptr_part ( lines _ testchar testmt FIG. 2d< K i g W. W ptr test nt ptr_testchar?nes FIG. 2e< tr a ll 00 P _ /280 Lower Upper Chain Initialization bound bound List Bit Vector Status ptr_aiioc 11010"""0110 ALLOCATED K 1 l l l l

6 US. Patent Dec. 31, 1996 Sheet 5 of 19 5,590,329 Read line or node of the parse tree 310 is there a reference to an array in this Yes Q TO FIG. 4 ine of code? 320 pointer assigned a value in this line of code? there a call to a function? identify any allocated memory that function may access and, if any, set?ag in internal symbol table I 340 Are there Yes additional nodes of parse tree to be analyzed? Perform data?ow analysis 350 \-/\ to reduce the number of pointer checks performed at run-time 370 Generate error message 360 Does data?ow analysis Yes indicate that an uninitialized or null pointer is being dereferenced? FIG. 3

7 US. Patent Dec. 31, 1996 Sheet 6 of 19 5,590,329 (#9 FROM FIG. 3 Obtain maximum declared 410% size for each dimension of array from internal symbol table subscript reference for this dimension 435 Generate error message subscript reference <0 or > maximum for this dimension? Insert dimchk command 425%.. node in parse tree with maximum size for this dimension 4 Yes Does array have additional untested dimensions? FIG. 4

8 U.S. Patent Dec. 31, 1996 Sheet 7 of 19 FiG % Generate tblupd command node ii, 510% Analyze pointer expression being assigned to pointer 515 is the Place pointer to internal pointer being assigned the address of an identi?ed variable or function? symbol table entry the identi?ed variable To FIG 3 or function in tblupd node 520 is the pointer being assigned the contents of a second pointer? insert a readintstk command in -@To FIG. 3 tblupd node 525 Is the pointer Place address and being assigned a size of string in +@To FIG. 3 string? tblupd node 530 is the Place ILLEGAL pointer being assigned an illegal value? status indication '@TO H6. 3 in tblupd node 535 Is the Place size of pointer being assigned the address of a structure structure member and readintstk FIG- 3 in tblupd node TO FiG. 5b FIG. 5a

9 U.S. Patent Dec. 31, 1996 Sheet 8 of 19 5,590, FROM FIG. 5a 540 pointer being assigned by a conditiona expression in the form *(Test?exp1 :exp2)? 542R Generate a savptr command for each instruction stream and insert >@TQ HQ 3 a rdptrstk command in tblupd node 545 pointer being assigned implicitly upon th assing of pointer argument to an interpreted 547R Generate a savptr command prior to the function call for each pointer argument with a pointer to the >@TQ HQ 3 function and insert a rdptrstk command in tblupd node 550 pointer being assigned a value returned from an interpreted function? 560% 552R Generate a savptr command Y with a pointer to the function 93 in response to the return call by the called function for each,@ To FIG 3 returned pointer and insert a rdptrstk command in tblupd node Place U'NKNOIWN FROM HQ 3 status indication in tblupd node 615 insert a ptrchk command \\ for respective pointer TO FIG. 3 in parse tree FIG. 5b 620 Are there additional pointer dereferences in line of parse tree being FIG. 6

10 w US. Patent Dec. 31, 1996 Sheet 9 of 19 5,590, \ Locate row in pointer check table for pointer argument a Status = FREED? Generate error message Status = \ ALLOCATED or UNKNOWN? Generate error message 725\ Access memory allocation structure pointed to by pointer retrieved from entry 250a and set status member = FREED 730 \ Access chain list member in memory allocation structure and retrieve list of pointers Ir 735\ Access appropriate row in pointer check table for each pointer retrieved from chain list and set status = FREED 737 Call and execute compiled memory deallocation function 739\ Set actual contents of each pointer listed in chain list to a null value l 740 EXlT 4 FIG. 7

11 US. Patent ' Dec. 31, 1996 Sheet 10 of 19 5,590, FROM Evaluate each node of 1 FIGS internal pseudo-code 810 Yes TO FIG i N Retrieve address of pointer being 0 copied from top of interpreter 820 stack and copy pointer infonnation Yes from associated row of pointer check table into pointer save stack. Place pointer to function identi?er in pointer N0 save stack if included with 830 savptr command. ' Yes To FIG. 10a Yes TO FlG.11a command for a compiled function? Yes Q TO FlG. 12a No 860 Are there additional nodes of internal pseudo-code to be evaluated? Yes 870 FIG. 8

12 US. Patent Dec. 31, 1996 Sheet 11 of 19 5,590,329 C?FROM FIG. s 910 \ Calculate array index for variable subscript reference 920 I s subscript reference maximum valid < 0 or > maximum valid dimension 928 dimension? =1? / Utilize pointer checking facilities to determine if structure as a whole is within valid range Generate error message H TO FIG. 8 FIG. 9

13 US. Patent Dec. 31, 1996 Sheet 12 of 19 5,590, FROM FIG. 8 \ Evaluate tblupd node Does the node contain a pointer to an internal symbol table ntry? NO 100E 1008 Access identi?ed symbol table entry and retrieve address and size information Set status = UNKNOWN \ Set status 1018 Set status =PFUNC i \=BOUNDED Iv start address vaiid range i022 Does the 1020 \ it node contain a readintstk HG 103 Update pointer check table entry for pointer being FIG \ Access interpreter stack to retrieve address of second pointer being copied l \ Locate pointer check table entry for second pointer using retrieved address it 1028 Copy pointer check table entry for second pointer into entry for pointer being FIG. 8

14 US. Patent Dec. 31, 1996 Sheet 13 of 19 5,590, Q FROM FIG. 10a Does the node contain s 1034 \ \ I Update pointer calcqlate + Set status = + check table entry Vahd BOUNDED for pointer being range assigned TO FIG Does the 1040 \ \ Update pointer node contain Set status = check table entry an ILLEGAL status ILLEGAL " for pointer being * TO HQ 8 indication? assigned Does the \ _ T0 F'G- 10C stack to retrieve address of structure member \ Update pointer ca'c t ate + Set status = _> check table entry "d BOUNDED for pointer being range assigned TO FIG. 8 FIG. 10b

15 US. Patent Dec. 31, 1996 Sheet 14 0f 19 5,590,329 FROM FIG. 10b i Does the node contain a rdptrstk command? Access pointer save stack and retrieve contents No 1066 Does pointer save stack include a 1074 pointer to a function pointer to a function = address of function that = address of function 1080 \ Update pointer check table entry for pointer being assigned with pointer information retrieved from pointer save FIG \ Does the_ \ Update pointer node Contain Set status = check table entry an UNKNOWN status UNKNOWN for pointer being * \ Generate error message 1098@ FIG. 10c

16 US. Patent Dec. 31, 1996 Sheet 15 of 19 FROM FIG \ Access interpreter stack and retrieve address of pointer being checked l Locate pointer check 1108 \ table entry for pointer being checked using retrieved address of pointer 1112 No Yes 1116 \ Obtain address of function from internal symbol table Set recorded contents \ = address from symbol table 1 J Recorded contents = actual contents? 1128 \ Set status = UNKNOWN v TO H6. 8 Yes Q TO FlG. 13 No TO FIG. 11b FIG. 11a

17 US. Patent Dec. 31, 1996 Sheet 16 of 19 5,590,329 m FROM FlG.11a Status = contents of the BOUNDED? pointer within valid To HQ \ Status = CO?tBntS of Yes Update appropriate ALLOCATED? the pointer within bits of initialization ' bit vector to indicate initialized status Generate error \1176 Access appropriate bits of initialization bit vector to determine if corresponding bytes of allocated memory have been initialized 69m H6. 8 FIG. 11h

18 US. Patent Dec. 31, 1996 Sheet 17 of 19 5,590,329 Q FROM FIG D088 compiled function have an associated pre execution wrappe function? \ Initiate associated pre execution wrapper function to perform pointer check 1205 Has allocation access flag No been set? Call and execute 1201 compiled code Execute initialization bit vector maintenance subroutine 4 i 1265 D093 compiled function have an associated post execution wrappe function? 1270 \ Initiate associated post-execution wrapper function No (5T0 FIG. 8 FIG. 12a

19 U.S. Patent Dec. 31, 1996 Sheet is of 19 5,590,329 Begin initialization bit vector maintenance subroutine l Analyze initialization bit vector in FROM FlGS. 11a 1210 memory allocation structure for all 1310 OR 11b \ accessible allocated memory to identify uninitialized bytes at time compiled function is called.gelierii te error message 'nq'catmg em. type. and the line number in which the 1220 l pointer was last modified \ Perform CRC checksum on all i uninitialized accessible bytes Utilize read-time facilities 1225 to allow programmer to correct detected error Call and execute compiled code 132K0 TO FIG Perform CRC checksum on all bytes uninitialized before FIG. 13 execution of compiled code \. D 088 CRC : CR0") ' Read?ag de?ned by user to determine if entire block should be marked with the initialized status Yes Return to compiled function error checking process 1255 \ Identify each 4 byte block having a contents not equal to FFFA 5A5A Update each bit of initialization bit vector to indicate initialization status l y Update corresponding \ bits of initialization bit vector to indicate initialized status c l FIG. 12b

20 U.S. Patent Dec. 31, 1996 Sheet 19 of 19 5,590,329 [ Sourcecode = Sample FIG. 14a I10 struct part { I20 int number; I30 char name [10]; I40 I50 I60 I70 char color; } widget; struct part *ptlpart; ptlpart = &widget; I80 ptr part +number = 860; 90 strcpy (ptr_part >name, " chair ); I100 ptr_part >coior = b'; I150 ptr_part = 0; I160 ptr_part >number = 870; Set 1 DEF (170) USED (I80) USED (I90) USED (1100) Set 2 DEF 0 (I150). FIG. 14b USED (I160)

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

In Java we have the keyword null, which is the value of an uninitialized reference type

In 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 information

[0569] p 0318 garbage

[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 information

TI2725-C, C programming lab, course

TI2725-C, C programming lab, course Valgrind tutorial Valgrind is a tool which can find memory leaks in your programs, such as buffer overflows and bad memory management. This document will show per example how Valgrind responds to buggy

More information

Homework #3 CS2255 Fall 2012

Homework #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 information

Pointers. Memory. void foo() { }//return

Pointers. Memory. void foo() { }//return Pointers Pointers Every location in memory has a unique number assigned to it called it s address A pointer is a variable that holds a memory address A pointer can be used to store an object or variable

More information

CS201- Introduction to Programming Current Quizzes

CS201- 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 information

Structures, Unions Alignment, Padding, Bit Fields Access, Initialization Compound Literals Opaque Structures Summary. Structures

Structures, Unions Alignment, Padding, Bit Fields Access, Initialization Compound Literals Opaque Structures Summary. Structures Structures Proseminar C Grundlagen und Konzepte Michael Kuhn Research Group Scientific Computing Department of Informatics Faculty of Mathematics, Informatics und Natural Sciences University of Hamburg

More information

CS162 - POINTERS. Lecture: Pointers and Dynamic Memory

CS162 - 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 information

Pointers. 1 Background. 1.1 Variables and Memory. 1.2 Motivating Pointers Massachusetts Institute of Technology

Pointers. 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 information

Lecture 14. Dynamic Memory Allocation

Lecture 14. Dynamic Memory Allocation Copyright 1996 David R. Hanson Computer Science 126, Fall 1996 14-1 Lecture 14. Dynamic Memory Allocation The number of variables and their sizes are determined at compile-time before a program runs /*

More information

Declaring Pointers. Declaration of pointers <type> *variable <type> *variable = initial-value Examples:

Declaring 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 information

Arrays and Pointers (part 2) Be extra careful with pointers!

Arrays and Pointers (part 2) Be extra careful with pointers! Arrays and Pointers (part 2) EECS 2031 22 October 2017 1 Be extra careful with pointers! Common errors: l Overruns and underruns Occurs when you reference a memory beyond what you allocated. l Uninitialized

More information

C Programming Basics II

C Programming Basics II C Programming Basics II Xianyi Zeng xzeng@utep.edu Department of Mathematical Sciences The University of Texas at El Paso. September 20, 2016. Pointers and Passing by Address Upon declaring a variable,

More information

Lecture 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? 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 information

Arrays and Pointers (part 2) Be extra careful with pointers!

Arrays and Pointers (part 2) Be extra careful with pointers! Arrays and Pointers (part 2) CSE 2031 Fall 2011 23 October 2011 1 Be extra careful with pointers! Common errors: Overruns and underruns Occurs when you reference a memory beyond what you allocated. Uninitialized

More information

CSC 211 Intermediate Programming. Arrays & Pointers

CSC 211 Intermediate Programming. Arrays & Pointers CSC 211 Intermediate Programming Arrays & Pointers 1 Definition An array a consecutive group of memory locations that all have the same name and the same type. To create an array we use a declaration statement.

More information

(12) United States Patent (10) Patent N0.: US 6,489,902 B2 Heath (45) Date of Patent: *Dec. 3, 2002

(12) United States Patent (10) Patent N0.: US 6,489,902 B2 Heath (45) Date of Patent: *Dec. 3, 2002 US006489902B2 (12) United States Patent (10) Patent N0.: US 6,489,902 B2 Heath (45) Date of Patent: *Dec. 3, 2002 (54) DATA COMPRESSION FOR USE WITH A (52) US. Cl...... 341/87 COMMUNICATIONS CHANNEL (58)

More information

(12) United States Patent (10) Patent No.: US 6,446,087 B1. Lai (45) Date of Patent: Sep. 3, 2002

(12) United States Patent (10) Patent No.: US 6,446,087 B1. Lai (45) Date of Patent: Sep. 3, 2002 USOO6446087B1 (12) United States Patent (10) Patent No.: Lai (45) Date of Patent: Sep. 3, 2002 (54) SYSTEM FOR MAINTAINING THE (74) Attorney, Agent, or Firm-Patton Boggs, LLP INTEGRITY OF APPLICATION DATA

More information

Pointers, Dynamic Data, and Reference Types

Pointers, Dynamic Data, and Reference Types Pointers, Dynamic Data, and Reference Types Review on Pointers Reference Variables Dynamic Memory Allocation The new operator The delete operator Dynamic Memory Allocation for Arrays 1 C++ Data Types simple

More information

Algorithms & Data Structures

Algorithms & 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 information

CS 31: Intro to Systems Pointers and Memory. Kevin Webb Swarthmore College October 2, 2018

CS 31: Intro to Systems Pointers and Memory. Kevin Webb Swarthmore College October 2, 2018 CS 31: Intro to Systems Pointers and Memory Kevin Webb Swarthmore College October 2, 2018 Overview How to reference the location of a variable in memory Where variables are placed in memory How to make

More information

COMP26120: Linked List in C (2018/19) Lucas Cordeiro

COMP26120: Linked List in C (2018/19) Lucas Cordeiro COMP26120: Linked List in C (2018/19) Lucas Cordeiro lucas.cordeiro@manchester.ac.uk Linked List Lucas Cordeiro (Formal Methods Group) lucas.cordeiro@manchester.ac.uk Office: 2.28 Office hours: 10-11 Tuesday,

More information

Class Information ANNOUCEMENTS

Class 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 information

4,751,635 Jun. 14, 1988

4,751,635 Jun. 14, 1988 United States Patent [191 Kret [11] [45] Patent Number: Date of Patent: 4,751,635 Jun. 14, 1988 [54] DISTRIBUTED MANAGEMENT SUPPORT SYSTEM FOR SOFI'WARE MANAGERS [75] Inventor: Michael A. Kret, Pisacataway

More information

(12) (10) Patent No.: US 7,103,736 B2. Sachs (45) Date of Patent: Sep. 5, 2006

(12) (10) Patent No.: US 7,103,736 B2. Sachs (45) Date of Patent: Sep. 5, 2006 United States Patent US007103736B2 (12) (10) Patent No.: Sachs (45) Date of Patent: Sep. 5, 2006 (54) SYSTEM FOR REPAIR OF ROM 5.325,504 A * 6/1994 Tipley et al.... T11/128 PROGRAMMING ERRORS ORDEFECTS

More information

/ client computer. \ single sign-on. application program server (AP) network. server (SS0) (12) United States Patent Hsieh et a].

/ client computer. \ single sign-on. application program server (AP) network. server (SS0) (12) United States Patent Hsieh et a]. US007278155B2 (12) United States Patent Hsieh et a]. (10) Patent N0.: (45) Date of Patent: US 7,278,155 B2 Oct. 2, 2007 (54) (75) (73) (*) (21) (22) (65) (30) Foreign Application Priority Data Oct. 22,

More information

Fundamentals of Programming. Lecture 12: C Structures, Unions, Bit Manipulations and Enumerations

Fundamentals of Programming. Lecture 12: C Structures, Unions, Bit Manipulations and Enumerations Fundamentals of Programming Lecture 12: C Structures, Unions, Bit Manipulations and Enumerations Instructor: Fatemeh Zamani f_zamani@ce.sharif.edu Sharif University of Technology Computer Engineering Department

More information

(12) United States Patent

(12) United States Patent (12) United States Patent Sanchez et al. USOO6477666B1 (10) Patent No.: US 6,477,666 B1 (45) Date of Patent: Nov. 5, 2002 (54) AUTOMATIC FAULT INJECTION INTO A JAVA VIRTUAL MACHINE (JVM) (75) Inventors:

More information

Vector and Free Store (Pointers and Memory Allocation)

Vector and Free Store (Pointers and Memory Allocation) DM560 Introduction to Programming in C++ Vector and Free Store (Pointers and Memory Allocation) Marco Chiarandini Department of Mathematics & Computer Science University of Southern Denmark [Based on slides

More information

THE 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, 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

Pointers and Memory 1

Pointers and Memory 1 Pointers and Memory 1 Pointer values Pointer values are memory addresses Think of them as a kind of integer values The first byte of memory is 0, the next 1, and so on A pointer p can hold the address

More information

Arrays and Pointers. CSE 2031 Fall November 11, 2013

Arrays 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 information

(12) United States Patent

(12) United States Patent (12) United States Patent USOO6941277B2 (10) Patent No.: Imag0 (45) Date of Patent: Sep. 6, 2005 (54) METHODS AND SYSTEMS FOR PROVIDING (56) References Cited ONLINE INFORMATION FOR NETWORKED DEVICES U.S.

More information

Scientific Programming in C X. More features & Fortran interface

Scientific Programming in C X. More features & Fortran interface Scientific Programming in C X. More features & Fortran interface Susi Lehtola 20 November 2012 typedef typedefs are a way to make shorthand for data types, and possibly also make the code more general

More information

Pointer Arithmetic and Lexical Scoping. CS449 Spring 2016

Pointer Arithmetic and Lexical Scoping. CS449 Spring 2016 Pointer Arithmetic and Lexical Scoping CS449 Spring 2016 Review Pitfall 1 from previous lecture void foo(char *s) { s = "World"; int main() { char *str = "Hello"; foo(str); printf("%s\n", str); return

More information

CS107 Handout 08 Spring 2007 April 9, 2007 The Ins and Outs of C Arrays

CS107 Handout 08 Spring 2007 April 9, 2007 The Ins and Outs of C Arrays CS107 Handout 08 Spring 2007 April 9, 2007 The Ins and Outs of C Arrays C Arrays This handout was written by Nick Parlante and Julie Zelenski. As you recall, a C array is formed by laying out all the elements

More information

Announcements. assign0 due tonight. Labs start this week. No late submissions. Very helpful for assign1

Announcements. assign0 due tonight. Labs start this week. No late submissions. Very helpful for assign1 Announcements assign due tonight No late submissions Labs start this week Very helpful for assign1 Goals for Today Pointer operators Allocating memory in the heap malloc and free Arrays and pointer arithmetic

More information

Dynamic memory. EECS 211 Winter 2019

Dynamic 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 information

Memory and Addresses. Pointers in C. Memory is just a sequence of byte-sized storage devices.

Memory 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 information

Arrays and Pointers. Arrays. Arrays: Example. Arrays: Definition and Access. Arrays Stored in Memory. Initialization. EECS 2031 Fall 2014.

Arrays 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 information

CS 61C: Great Ideas in Computer Architecture. C Arrays, Strings, More Pointers

CS 61C: Great Ideas in Computer Architecture. C Arrays, Strings, More Pointers CS 61C: Great Ideas in Computer Architecture C Arrays, Strings, More Pointers Instructor: Justin Hsia 6/20/2012 Summer 2012 Lecture #3 1 Review of Last Lecture C Basics Variables, Functions, Flow Control,

More information

C++ ARRAYS POINTERS POINTER ARITHMETIC. Problem Solving with Computers-I

C++ ARRAYS POINTERS POINTER ARITHMETIC. Problem Solving with Computers-I C++ ARRAYS POINTERS POINTER ARITHMETIC Problem Solving with Computers-I General model of memory Sequence of adjacent cells Each cell has 1-byte stored in it Each cell has an address (memory location) Memory

More information

Pointers and Arrays 1

Pointers and Arrays 1 Pointers and Arrays 1 Pointers and Arrays When an array is declared, The compiler allocates sufficient amount of storage to contain all the elements of the array in contiguous memory locations The base

More information

Today s lecture. Pointers/arrays. Stack versus heap allocation CULTURE FACT: IN CODE, IT S NOT CONSIDERED RUDE TO POINT.

Today s lecture. Pointers/arrays. Stack versus heap allocation CULTURE FACT: IN CODE, IT S NOT CONSIDERED RUDE TO POINT. Pointers/arrays Mechanics, syntax Underlying memory model Array indexing == pointer arithmetic As parameters Stack versus heap allocation Stack declaration, scope, lifetime Heap allocation/deallocation

More information

A program execution is memory safe so long as memory access errors never occur:

A program execution is memory safe so long as memory access errors never occur: A program execution is memory safe so long as memory access errors never occur: Buffer overflows, null pointer dereference, use after free, use of uninitialized memory, illegal free Memory safety categories

More information

(12) Patent Application Publication (10) Pub. No.: US 2008/ A1

(12) Patent Application Publication (10) Pub. No.: US 2008/ A1 (19) United States (12) Patent Application Publication (10) Pub. No.: US 2008/0317029 A1 TASAK et al. US 20080317029A1 (43) Pub. Date: Dec. 25, 2008 (54) (75) (73) (21) (22) (60) UNICAST/MULTICAST SYSTEM

More information

Pointers. A pointer value is the address of the first byte of the pointed object in the memory. A pointer does not know how many bytes it points to.

Pointers. A pointer value is the address of the first byte of the pointed object in the memory. A pointer does not know how many bytes it points to. Pointers A pointer is a memory address of an object of a specified type, or it is a variable which keeps such an address. Pointer properties: P (pointer) 12316 12316 (address) Typed object A pointer value

More information

Chapter 1 INTRODUCTION SYS-ED/ COMPUTER EDUCATION TECHNIQUES, INC.

Chapter 1 INTRODUCTION SYS-ED/ COMPUTER EDUCATION TECHNIQUES, INC. hapter 1 INTRODUTION SYS-ED/ OMPUTER EDUATION TEHNIQUES, IN. Objectives You will learn: Java features. Java and its associated components. Features of a Java application and applet. Java data types. Java

More information

Principles of Programming Languages

Principles of Programming Languages Principles of Programming Languages h"p://www.di.unipi.it/~andrea/dida2ca/plp- 14/ Prof. Andrea Corradini Department of Computer Science, Pisa Lesson 23! Type systems Type safety Type checking Equivalence,

More information

CS11001/CS11002 Programming and Data Structures (PDS) (Theory: 3-1-0) Allocating Space

CS11001/CS11002 Programming and Data Structures (PDS) (Theory: 3-1-0) Allocating Space CS11001/CS11002 Programming and Data Structures (PDS) (Theory: 3-1-0) Allocating Space Dynamic Memory Allocation All variables, arrays, structures and unions that we worked with so far are statically allocated,

More information

CS61C : Machine Structures

CS61C : Machine Structures inst.eecs.berkeley.edu/~cs61c CS61C : Machine Structures Lecture #3 C Strings, Arrays, & Malloc 2007-06-27 Scott Beamer, Instructor Sun announces new supercomputer: Sun Constellation CS61C L3 C Pointers

More information

Run-time Environments - 3

Run-time Environments - 3 Run-time Environments - 3 Y.N. Srikant Computer Science and Automation Indian Institute of Science Bangalore 560 012 NPTEL Course on Principles of Compiler Design Outline of the Lecture n What is run-time

More information

6.S096: Introduction to C/C++

6.S096: Introduction to C/C++ 6.S096: Introduction to C/C++ Frank Li, Tom Lieber, Kyle Murray Lecture 4: Data Structures and Debugging! January 17, 2012 Today Memory Leaks and Valgrind Tool Structs and Unions Opaque Types Enum and

More information

Introduction to Computer Science Midterm 3 Fall, Points

Introduction to Computer Science Midterm 3 Fall, Points Introduction to Computer Science Fall, 2001 100 Points Notes 1. Tear off this sheet and use it to keep your answers covered at all times. 2. Turn the exam over and write your name next to the staple. Do

More information

void setup(){ void loop() { The above setup works, however the function is limited in the fact it can not be reused easily. To make the code more gene

void setup(){ void loop() { The above setup works, however the function is limited in the fact it can not be reused easily. To make the code more gene Passing arrays to functions A big topic for beginners is how to write a function that can be passed an array. A very common way of achieving this is done using pointers. This method can be seen all through

More information

CSE 307: Principles of Programming Languages

CSE 307: Principles of Programming Languages CSE 307: Principles of Programming Languages Variables and Constants R. Sekar 1 / 22 Topics 2 / 22 Variables and Constants Variables are stored in memory, whereas constants need not be. Value of variables

More information

Type Checking. Prof. James L. Frankel Harvard University

Type Checking. Prof. James L. Frankel Harvard University Type Checking Prof. James L. Frankel Harvard University Version of 7:10 PM 27-Feb-2018 Copyright 2018, 2016, 2015 James L. Frankel. All rights reserved. C Types C Types Type Category Type Category Type

More information

(12) United States Patent

(12) United States Patent US007107617B2 (12) United States Patent Hursey et al. (10) Patent No.: (45) Date of Patent: Sep. 12, 2006 (54) MALWARE SCANNING OF COMPRESSED COMPUTER S (75) Inventors: Nell John Hursey, Hertfordshire

More information

CS 61c: Great Ideas in Computer Architecture

CS 61c: Great Ideas in Computer Architecture Arrays, Strings, and Some More Pointers June 24, 2014 Review of Last Lecture C Basics Variables, functioss, control flow, types, structs Only 0 and NULL evaluate to false Pointers hold addresses Address

More information

CMSC 341 Lecture 2 Dynamic Memory and Pointers

CMSC 341 Lecture 2 Dynamic Memory and Pointers CMSC 341 Lecture 2 Dynamic Memory and Pointers Park Sects. 01 & 02 Based on earlier course slides at UMBC Today s Topics Stack vs Heap Allocating and freeing memory new and delete Memory Leaks Valgrind

More information

Cpt S 122 Data Structures. Data Structures

Cpt S 122 Data Structures. Data Structures Cpt S 122 Data Structures Data Structures Nirmalya Roy School of Electrical Engineering and Computer Science Washington State University Topics Introduction Self Referential Structures Dynamic Memory Allocation

More information

CA31-1K DIS. Pointers. TA: You Lu

CA31-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 information

More Binary Search Trees AVL Trees. CS300 Data Structures (Fall 2013)

More Binary Search Trees AVL Trees. CS300 Data Structures (Fall 2013) More Binary Search Trees AVL Trees bstdelete if (key not found) return else if (either subtree is empty) { delete the node replacing the parents link with the ptr to the nonempty subtree or NULL if both

More information

Dynamic Memory Allocation

Dynamic 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 information

(12) Patent Application Publication (10) Pub. No.: US 2016/ A1

(12) Patent Application Publication (10) Pub. No.: US 2016/ A1 (19) United States US 2016037 1322A1 (12) Patent Application Publication (10) Pub. No.: US 2016/0371322 A1 GUNTI et al. (43) Pub. Date: Dec. 22, 2016 (54) EFFICIENT MANAGEMENT OF LARGE (52) U.S. Cl. NUMBER

More information

(12) United States Patent

(12) United States Patent (12) United States Patent USOO8836702B2 (10) Patent No.: US 8,836,702 B2 Yoon et al. (45) Date of Patent: Sep. 16, 2014 (54) RAY TRACING CORE AND METHOD FOR (58) Field of Classification Search PROCESSING

More information

More BSTs & AVL Trees bstdelete

More BSTs & AVL Trees bstdelete More BSTs & AVL Trees bstdelete if (key not found) return else if (either subtree is empty) { delete the node replacing the parents link with the ptr to the nonempty subtree or NULL if both subtrees are

More information

Pointers. Addresses in Memory. Exam 1 on July 18, :00-11:40am

Pointers. Addresses in Memory. Exam 1 on July 18, :00-11:40am Exam 1 on July 18, 2005 10:00-11:40am Pointers Addresses in Memory When a variable is declared, enough memory to hold a value of that type is allocated for it at an unused memory location. This is the

More information

(12) Patent Application Publication (10) Pub. No.: US 2009/ A1

(12) Patent Application Publication (10) Pub. No.: US 2009/ A1 (19) United States (12) Patent Application Publication (10) Pub. No.: US 2009/0222841 A1 Mirajkar et al. US 20090222841A1 (43) Pub. Date: Sep. 3, 2009 (54) (75) (73) (21) (22) ACCELERATION OF RECEIVE DATA

More information

(12) United States Patent (10) Patent N0.: US 6,418,141 B1 Votava (45) Date of Patent: Jul. 9, 2002

(12) United States Patent (10) Patent N0.: US 6,418,141 B1 Votava (45) Date of Patent: Jul. 9, 2002 US006418141B1 (12) United States Patent (10) Patent N0.: US 6,418,141 B1 Votava (45) Date of Patent: Jul. 9, 2002 (54) MULTI-CAST ENABLED WEB SERVER 6,011,782 A * 1/2000 DeSimone et al...... 370/260 6,038,601

More information

REFERENCES, POINTERS AND STRUCTS

REFERENCES, POINTERS AND STRUCTS REFERENCES, POINTERS AND STRUCTS Problem Solving with Computers-I https://ucsb-cs16-sp17.github.io/ Pointer assignment 2 int *p1, *p2, x; p1 = &x; p2 = p1; Q: Which of the following pointer diagrams best

More information

Dynamic Allocation of Memory

Dynamic Allocation of Memory Dynamic Allocation of Memory Lecture 4 Sections 10.9-10.10 Robb T. Koether Hampden-Sydney College Fri, Jan 25, 2013 Robb T. Koether (Hampden-Sydney College) Dynamic Allocation of Memory Fri, Jan 25, 2013

More information

USOO A United States Patent (19) 11 Patent Number: 6,125,108 Shafer et al. (45) Date of Patent: Sep. 26, 2000

USOO A United States Patent (19) 11 Patent Number: 6,125,108 Shafer et al. (45) Date of Patent: Sep. 26, 2000 USOO6125.108A United States Patent (19) 11 Patent Number: 6,125,108 Shafer et al. (45) Date of Patent: Sep. 26, 2000 54 METHOD AND SYSTEM FOR ENHANCED 57 ABSTRACT CLIENT DENTIFICATION - A method and System

More information

Part V. Memory and pointers. Philip Blakely (LSC) C++ Introduction 145 / 370

Part V. Memory and pointers. Philip Blakely (LSC) C++ Introduction 145 / 370 Part V and pointers Philip Blakely (LSC) C++ Introduction 145 / 370 Outline 19 20 Function pointers 21 Global variables Philip Blakely (LSC) C++ Introduction 146 / 370 Heap and Stack The stack is a Last-In-First-Out

More information

Lecture Notes on Memory Layout

Lecture Notes on Memory Layout Lecture Notes on Memory Layout 15-122: Principles of Imperative Computation Frank Pfenning André Platzer Lecture 11 1 Introduction In order to understand how programs work, we can consider the functions,

More information

Pointer Basics. Lecture 13 COP 3014 Spring March 28, 2018

Pointer 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

(12) United States Patent Cunningham et al.

(12) United States Patent Cunningham et al. US007765264B2 (12) United States Patent Cunningham et al. (10) Patent N0.: (45) Date of Patent: Jul. 27, 2010 (54) SELECTION OF MODE ACCORDING TO MESSAGE CHARACTERISTICS (75) Inventors: Ivy F. Cunningham,

More information

Memory management. Johan Montelius KTH

Memory management. Johan Montelius KTH Memory management Johan Montelius KTH 2017 1 / 22 C program # include int global = 42; int main ( int argc, char * argv []) { if( argc < 2) return -1; int n = atoi ( argv [1]); int on_stack

More information

Lecture 9 Assertions and Error Handling CS240

Lecture 9 Assertions and Error Handling CS240 Lecture 9 Assertions and Error Handling CS240 The C preprocessor The C compiler performs Macro expansion and directive handling Preprocessing directive lines, including file inclusion and conditional compilation,

More information

Programming. Pointers, Multi-dimensional Arrays and Memory Management

Programming. 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 information

FORM 2 (Please put your name and form # on the scantron!!!!)

FORM 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 information

High-performance computing and programming Intro to C on Unix/Linux. Uppsala universitet

High-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 information

C Pointers. 6th April 2017 Giulio Picierro

C Pointers. 6th April 2017 Giulio Picierro C Pointers 6th April 07 Giulio Picierro Functions Return type Function name Arguments list Function body int sum(int a, int b) { return a + b; } Return statement (return keyword

More information

(12) Patent Application Publication (10) Pub. No.: US 2013/ A1

(12) Patent Application Publication (10) Pub. No.: US 2013/ A1 (19) United States US 2013 00277.43A1 (12) Patent Application Publication (10) Pub. No.: US 2013/0027743 A1 ENAMI (43) Pub. Date: Jan. 31, 2013 (54) APPLICATION DELIVERING SYSTEM (52) U.S. Cl.... 358/1.15

More information

(12) United States Patent (10) Patent No.: US 6,408,074 B1

(12) United States Patent (10) Patent No.: US 6,408,074 B1 USOO6408074B1 (12) United States Patent (10) Patent No.: LOughran (45) Date of Patent: Jun. 18, 2002 (54) HARDWARE ARCHITECTURE FOR A 4.914,697 A * 4/1990 Dabbish et al.... 380/28 CONFIGURABLE CIPHER DEVICE

More information

(12) United States Patent Rachmiel et a1.

(12) United States Patent Rachmiel et a1. US008073863B2 (12) United States Patent Rachmiel et a1. (10) Patent N0.: (45) Date of Patent: US 8,073,863 B2 Dec. 6, 2011 (54) (75) (73) (*) (21) (22) (65) (60) (51) (52) (58) (56) BATCH MANAGEMENT OF

More information

CSci 4061 Introduction to Operating Systems. Programs in C/Unix

CSci 4061 Introduction to Operating Systems. Programs in C/Unix CSci 4061 Introduction to Operating Systems Programs in C/Unix Today Basic C programming Follow on to recitation Structure of a C program A C program consists of a collection of C functions, structs, arrays,

More information

CS 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 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 information

CSCE 206: Structured Programming in C++

CSCE 206: Structured Programming in C++ CSCE 206: Structured Programming in C++ 2017 Spring Exam 3 Monday, April 17, 2017 Total - 100 Points B Instructions: Total of 11 pages, including this cover and the last page. Before starting the exam,

More information

CSCE 206: Structured Programming in C++

CSCE 206: Structured Programming in C++ CSCE 206: Structured Programming in C++ 2017 Spring Exam 3 Monday, April 17, 2017 Total - 100 Points A Instructions: Total of 11 pages, including this cover and the last page. Before starting the exam,

More information

Chapter 1 GETTING STARTED. SYS-ED/ Computer Education Techniques, Inc.

Chapter 1 GETTING STARTED. SYS-ED/ Computer Education Techniques, Inc. Chapter 1 GETTING STARTED SYS-ED/ Computer Education Techniques, Inc. Objectives You will learn: Java platform. Applets and applications. Java programming language: facilities and foundation. Memory management

More information

CPSC 3740 Programming Languages University of Lethbridge. Data Types

CPSC 3740 Programming Languages University of Lethbridge. Data Types Data Types A data type defines a collection of data values and a set of predefined operations on those values Some languages allow user to define additional types Useful for error detection through type

More information

(12) United States Patent (10) Patent No.: US 8,832,425 B2 Tomasso (45) Date of Patent: Sep. 9, 2014

(12) United States Patent (10) Patent No.: US 8,832,425 B2 Tomasso (45) Date of Patent: Sep. 9, 2014 USOO8832425B2 (12) United States Patent (10) Patent No.: Tomasso (45) Date of Patent: Sep. 9, 2014 (54) WIDE AREA NETWORK ACCESS 2010/0017599 A1* 1/2010 Sellars et al...... 713/156 MANAGEMENT COMPUTER

More information

Topics so far. Review. scanf/fscanf. How data is read 1/20/2011. All code handin sare at /afs/andrew/course/15/123/handin

Topics so far. Review. scanf/fscanf. How data is read 1/20/2011. All code handin sare at /afs/andrew/course/15/123/handin 15-123 Effective Programming in C and Unix Announcements SL2 is due Thursday 1/20 midnight Complete the Academic Honesty Form in class All code downloads are from /afs/andrew/course/15/123/download All

More information

Printer. Data input/ Printout unit. processor) Control unit. (Raster image RIP. Display unit. Image

Printer. Data input/ Printout unit. processor) Control unit. (Raster image RIP. Display unit. Image (19) United States US 20070057978A1 (12) Patent Application Publication (10) Pub. No.: US 2007/0057978A1 Hagiwara (43) Pub. Date: Mar. 15, 2007 (54) PRINTER AND PRINTING METHOD (75) Inventor: Takahiro

More information

Outline. Java Models for variables Types and type checking, type safety Interpretation vs. compilation. Reasoning about code. CSCI 2600 Spring

Outline. Java Models for variables Types and type checking, type safety Interpretation vs. compilation. Reasoning about code. CSCI 2600 Spring Java Outline Java Models for variables Types and type checking, type safety Interpretation vs. compilation Reasoning about code CSCI 2600 Spring 2017 2 Java Java is a successor to a number of languages,

More information

Intermediate Programming, Spring 2017*

Intermediate Programming, Spring 2017* 600.120 Intermediate Programming, Spring 2017* Misha Kazhdan *Much of the code in these examples is not commented because it would otherwise not fit on the slides. This is bad coding practice in general

More information

III. United States Patent (19) Walsh 5,375,241. Dec. 20, METHOD AND SYSTEM FOR. have to be copied into the application programs, which

III. United States Patent (19) Walsh 5,375,241. Dec. 20, METHOD AND SYSTEM FOR. have to be copied into the application programs, which United States Patent (19) Walsh 54 METHOD AND SYSTEM FOR DYNAMC-LNK LIBRARY 75 Inventor: 73 Assignee: Wash. 21 Appl. No.: 994,149 22 Filed: Dec. 21, 1992 James E. Walsh, Redmond, Wash. Microsoft Corporation,

More information

EL2310 Scientific Programming

EL2310 Scientific Programming Lecture 11: Structures and Memory (yaseminb@kth.se) Overview Overview Lecture 11: Structures and Memory Structures Continued Memory Allocation Lecture 11: Structures and Memory Structures Continued Memory

More information

Static Analysis in C/C++ code with Polyspace

Static Analysis in C/C++ code with Polyspace 1 Static Analysis in C/C++ code with Polyspace Yongchool Ryu Application Engineer gary.ryu@mathworks.com 2016 The MathWorks, Inc. 2 Agenda Efficient way to find problems in Software Category of Static

More information