2.2k

# CSE240 Lecture 11

Introduction to Programming Languages
malloc and free
(202202)

January 11, 2017

## Transcript

1. jgs
CSE 240
Introduction to Programming Languages
Lecture 11: malloc and free
Dr. Javier Gonzalez-Sanchez
[email protected]
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
#include
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
#include
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
#include
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.
[email protected]
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.