$30 off During Our Annual Pro Sale. View Details »

CSE240 Lecture 11

CSE240 Lecture 11

Introduction to Programming Languages
malloc and free
(202202)

Javier Gonzalez-Sanchez
PRO

January 11, 2017
Tweet

More Decks by Javier Gonzalez-Sanchez

Other Decks in Programming

Transcript

  1. jgs CSE 240 Introduction to Programming Languages Lecture 11: malloc

    and free Dr. Javier Gonzalez-Sanchez javiergs@asu.edu javiergs.engineering.asu.edu | javiergs.com PERALTA 230U Office Hours: By appointment
  2. Javier Gonzalez-Sanchez | CSE240 | Spring 2018 | 2 jgs

    Announcement § Homework 02 Programming with C
  3. jgs malloc and free

  4. Javier Gonzalez-Sanchez | CSE240 | Spring 2018 | 4 jgs

    malloc #include <stdio.h> #include <stdlib.h> int main(){ int x = 5; int *y = (int*) malloc (sizeof(int)); *y = 7; printf("value of y: %d \n", *y); printf("address of y: %p \n", y); printf("address of y: %p \n", &y); printf("value of x: %d \n", x); printf("address of x: %p \n", &x); free(y); return 0; } 7 0x1c 0x1c y 0x78 5 x 0x74
  5. Javier Gonzalez-Sanchez | CSE240 | Spring 2018 | 5 jgs

    malloc and arrays #include <stdio.h> #include <stdlib.h> int main(){ int x = 5; int *y = (int*) malloc (sizeof(int) * 3); *(y+0) = 1; y[1] = 5; *(y+2) = 7; printf("value of y[0]: %d \n", y[0]); printf("value of y[1]: %d \n", y[1]); printf("value of y[2]: %d \n", y[2]); free(y); return 0; } 1 0x1c 0x1c y 0x78 5 7
  6. Javier Gonzalez-Sanchez | CSE240 | Spring 2018 | 6 jgs

    malloc and 2D arrays #include <stdio.h> #include <stdlib.h> int main(){ int **array = (int**) malloc (sizeof(int*) * 3); *(array+0) = (int*) malloc (sizeof(int ) * 3); array[1] = (int*) malloc (sizeof(int ) * 3); *(array+2) = (int*) malloc (sizeof(int ) * 3); array[0][0] = 1; array[1][1] = 1; array[2][2] = 1; *(*(array +1 ) + 2) = 3; // this is array[1][2] printf ("array [1][2] is %d \n", array[1][2]); printf ("array [2][2] is %d \n", *(*(array+2)+2) ); // free (s) go here return 0; }
  7. jgs Test Yourselves

  8. Javier Gonzalez-Sanchez | CSE240 | Spring 2018 | 8 jgs

    Dynamic 2D Array
  9. Javier Gonzalez-Sanchez | CSE240 | Spring 2018 | 9 jgs

    Dynamic 2D Array
  10. Javier Gonzalez-Sanchez | CSE240 | Spring 2018 | 10 jgs

    Questions
  11. jgs CSE 240 Introduction to Programming Languages Javier Gonzalez-Sanchez, Ph.D.

    javiergs@asu.edu Fall 2021 Copyright. These slides can only be used as study material for the class CSE240 at Arizona State University. They cannot be distributed or used for another purpose.