From c4e36ab80453aa83d979afb473d56d9f73ae2551 Mon Sep 17 00:00:00 2001 From: zleyyij <75810274+zleyyij@users.noreply.github.com> Date: Tue, 19 Nov 2024 14:10:06 -0700 Subject: [PATCH] vault backup: 2024-11-19 14:10:06 --- .../ECE1400/Chapter 17 Exercises.md | 20 +++++-------------- 1 file changed, 5 insertions(+), 15 deletions(-) diff --git a/education/software development/ECE1400/Chapter 17 Exercises.md b/education/software development/ECE1400/Chapter 17 Exercises.md index bce3cde..9f71533 100644 --- a/education/software development/ECE1400/Chapter 17 Exercises.md +++ b/education/software development/ECE1400/Chapter 17 Exercises.md @@ -1,18 +1,8 @@ -> **1.** Having to check the return function of `malloc` (or any other memory allocation function) each time we call it can be an annoyance. Write a function named `my_malloc` that serves as a "wrapper" for `malloc`. When we call `my_malloc` and ask it to allocate `n` bytes, it in turn calls `malloc`, tests to make sure that `malloc` doesn't return a null pointer, then returns the pointer from `malloc`. Have `my_malloc` print an error message and terminate the program if `malloc` returns a null pointer. - +> **4.** Suppose that the following declarations are in effect: ```c -void *my_malloc(size_t n) { - void *p = malloc(n); - if (p == NULL) { - printf("Failed to allocate memory"); - exit(EXIT_FAILURE); - } - return p; -} +struct point {int x, y; }; +struct rectangle { struct point upper_left, lower_right; }; +struct rectangle *p; ``` - ---- - -> **2.** - +> Assume that we want `p` to point to a rectangle structure whose upper left corner is at $(10, 25)$, and whose lower right corner is at $(20, 15)$. Write a series of statements that allocate such a structure and initialize it as indicated.