Cse 143 section ad
This presentation is the property of its rightful owner.
Sponsored Links
1 / 12

CSE 143 Section AD PowerPoint PPT Presentation


  • 62 Views
  • Uploaded on
  • Presentation posted in: General

CSE 143 Section AD. Quiz Section 8. Announcements. If you are not yet officially registered for this course, please make sure to talk to me after class. There will be another debugger tutorial today at 3:30 in MGH Room 30.

Download Presentation

CSE 143 Section AD

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


Cse 143 section ad

CSE 143 Section AD

Quiz Section 8

Jeff West - Quiz Section 8


Announcements

Announcements

  • If you are not yet officially registered for this course, please make sure to talk to me after class.

  • There will be another debugger tutorial today at 3:30 in MGH Room 30.

  • I’d like to welcome as much feedback as possible about how well quiz sections are preparing you so please feel free to talk to me about them… I have linked a feedback form from the Section AD web page if you want to remain anonymous…

  • Grades are on the course website – check to make sure yours are right ;)

  • There is a midterm in one week… if there is anything at all that is unclear to you please email me or visit my office hours this week so that studying for the midterm next week can be as painless as possible.

Jeff West - Quiz Section 8


Pointer types 1

Pointer Types (1)

What will the following code print to the screen?

int i = 3;

int j = 3;

int* ip1 = &i;

int* ip2 = &j;

if(ip1 == ip2)

cout << “They are equal”;

else

cout << “They are unequal”;

Jeff West - Quiz Section 8


Pointer types 2

Pointer Types (2)

That printed “They are unequal”…

What will the following code print to the screen?

int i = 3;

int j = 3;

int* ip1 = &i;

int* ip2 = &j;

if(*ip1 == *ip2)

cout << “They are equal”;

else

cout << “They are unequal”;

Jeff West - Quiz Section 8


Pointer types 3

Pointer Types (3)

That printed “They are equal”…

What will the following code print to the screen?

int i = 3;

int* ip1 = &i;

int* ip2 = ip1;

if(&ip1 == &ip2)

cout << “They are equal”;

else

cout << “They are unequal”;

Jeff West - Quiz Section 8


Cse 143 section ad

new

That printed “They are unequal”…

int i = 3;

int* ip = &i;

What if you don’t want to take up space for i until you are actually going to use it?

int* ip;

ip = new int;// allocate new integer

*ip = 3;// assign 3 to int you created

Jeff West - Quiz Section 8


Delete

delete

When you’re done using an object you can free up the memory it uses by deleting it!

Example:

int* ip;

ip = new int;// allocate new integer

*ip = 3;// assign 3 to int you created

delete ip;// deallocates integer

// what about ip??

Jeff West - Quiz Section 8


Newing and deleting arrays

newing and deleting arrays

int *p;

p = new int[10];

for(int i = 0; i < 10; i++)

p[i] = 2 * i;

cout << p[2];

delete [] p;// USE THE RIGHT // VERSION OF // DELETE

Jeff West - Quiz Section 8


Memory leak losing the pointer

Memory Leak (Losing the Pointer)

A memory leak occurs when you lose the pointer to memory without giving the memory back to the operating system. The memory will just sit in the heap with a “used” flag on it but you will have no way to access it!

Example:

int* ip;

P = new int;

*p = 12;

p = new int;// reassigned p… what about

// where it used to point?

*p = 17;

Jeff West - Quiz Section 8


Dangling pointers losing the heap space

Dangling Pointers (Losing the Heap Space)

A dangling pointer is sort of the “opposite problem.” A dangling pointer is a pointer that “thinks” that it is pointing to an object in memory when in reality the object in memory has already been returned to the operating system.

Example:

int *ip1 = new int;

int *ip2;

*p = 12;

q = p;

delete p;

*q = 15;// where will 15 be stored?

Jeff West - Quiz Section 8


Okay neat now what

Okay neat, now what?

Okay, so you can get new values… but how can this possibly help us in the “real” world?

Imagine creating an internet game (EverQuest, Quake, whatever you like)… you want to allow as many as 2,000 characters to exist in your game at one time but you also want to be as efficient as possible… if your game stores all characters active in the game in an array of character objects, how big should the array be?

Jeff West - Quiz Section 8


Answer

Answer

Answer: There should only be space allocated for the number of characters that are actually active (or somewhere in that ballpark).

But how can you possibly make it only as big as it needs to be when there will be a different number of characters in the game at different times?

Answer: Dynamic Memory! We’ll get really in depth on ways to grow and shrink array sizes tomorrow, so stay tuned…

Jeff West - Quiz Section 8


  • Login