Dynamic Allocation and Linked Lists - PowerPoint PPT Presentation

1 / 18
About This Presentation
Title:

Dynamic Allocation and Linked Lists

Description:

Dynamic Allocation and Linked Lists Dynamic memory allocation in C C uses the functions malloc() and free() to implement dynamic allocation. malloc is defined in ... – PowerPoint PPT presentation

Number of Views:41
Avg rating:3.0/5.0
Slides: 19
Provided by: csGsuEdu1
Learn more at: http://www.cs.gsu.edu
Category:

less

Transcript and Presenter's Notes

Title: Dynamic Allocation and Linked Lists


1
Dynamic Allocation and Linked Lists
2
Dynamic memory allocation in C
  • C uses the functions malloc() and free() to
    implement dynamic allocation.
  • malloc is defined in ltstdlib.hgt header files.
  • malloc returns a void pointer.
  • the pointer returned from malloc requires a type
    cast to make it usable. (void just a memory
    address)

3
Null Pointers
  • When a memory allocation function is called,
    theres always a possibility that it wont be
    able to locate a block of memory large enough to
    satisfy the requres.
  • A null pointer will be returned.
  • Test the return value
  • p malloc(10000)
  • if(p NULL)

4
Example
  • struct rec
  • char LastName41
  • char FirstName41
  • struct rec r
  • r (struct rec ) malloc(sizeof(struct rec))

5
Freeing Memory
  • Memory allocated with malloc must be released
    after you are done with them.
  • this memory is released by calling the function
    free().
  • free expects as an argument the pointer returned
    by malloc.
  • free( r )

6
Allocate Memory for Arrays
int p // one dimension int q // tow
dimension int i p (int ) malloc( sizeof(int)
n) q (int ) malloc( sizeof(int)
n) for(i0 iltn i) qi (int )
malloc( sizeof(int) n) // free(p) free(q)
7
The Dangling Pointer Problem
  • char p malloc(4)
  • .
  • free(p)
  • .
  • strcpy(p, abc) // WRONG

8
Linked List
  • A linked list is a basic data structure.
  • For easier understanding divide the linked list
    into two parts.
  • Nodes make up linked lists.
  • Nodes are structures made up of data and a
    pointer to another node.
  • Usually the pointer is called next.

9
Nodes
  • struct node
  • struct rec r
  • struct node next

10
LIST
  • The list will contain a pointer to the start of
    the list.
  • For our purposes all data will be added to the
    start of the list.
  • Initialize the start pointer to NULL.

11
Creating a New Node
  • Allocate space for a new node.
  • Set the next pointer to the value of NULL
  • Set the data value for the node.

12
Adding Nodes to the List
  • If the start node is null then the start node
    becomes the new node.
  • If start is not null then start becomes the new
    nodes next and the start becomes the new node.

13
(No Transcript)
14
(No Transcript)
15
(No Transcript)
16
(No Transcript)
17
Deleting a node
Q
R
P
I want to delete Q
18
Deleting a node
Q
R
P
P-gtnext Q-gtnext Q-gtnext NULL Free(Q)
I want to delete Q
Write a Comment
User Comments (0)
About PowerShow.com