many bytes are allocated

Computer Networking: A Top-Down Approach (7th Edition)
7th Edition
ISBN:9780133594140
Author:James Kurose, Keith Ross
Publisher:James Kurose, Keith Ross
Chapter1: Computer Networks And The Internet
Section: Chapter Questions
Problem R1RQ: What is the difference between a host and an end system? List several different types of end...
icon
Related questions
Question
**Question 3: Memory Allocation in C Structs**

In this question, we are tasked with finding out how many bytes are allocated for the program variables in the provided C program segment.

### Program Segment:
```c
Struct sID {
    int number;
    double cost;
    double *barcode; /* assume int is 4 bytes and double is 8 bytes long */
};
struct sID stud[3], *item;
```

### Explanation:
1. **Structure Definition (`struct sID`):**
   - **int number**: Takes 4 bytes.
   - **double cost**: Takes 8 bytes.
   - **double *barcode**: A pointer (typically 8 bytes on a 64-bit system).

2. **Total Size of struct sID:**
   - Total = 4 (int) + 8 (double) + 8 (pointer) = 20 bytes per structure.

3. **Array of Structures (`struct sID stud[3]`):**
   - There are three instances of `struct sID`.
   - Total Memory = 3 * 20 = 60 bytes.

4. **Pointer to Structure (`struct sID *item`):**
   - This is just a pointer, typically 8 bytes on a 64-bit system.

### Total Memory Allocated:
- Memory for `stud[3]`: 60 bytes
- Memory for `*item`: 8 bytes

Thus, the total memory allocated for all the variables in the segment is **68 bytes**.
Transcribed Image Text:**Question 3: Memory Allocation in C Structs** In this question, we are tasked with finding out how many bytes are allocated for the program variables in the provided C program segment. ### Program Segment: ```c Struct sID { int number; double cost; double *barcode; /* assume int is 4 bytes and double is 8 bytes long */ }; struct sID stud[3], *item; ``` ### Explanation: 1. **Structure Definition (`struct sID`):** - **int number**: Takes 4 bytes. - **double cost**: Takes 8 bytes. - **double *barcode**: A pointer (typically 8 bytes on a 64-bit system). 2. **Total Size of struct sID:** - Total = 4 (int) + 8 (double) + 8 (pointer) = 20 bytes per structure. 3. **Array of Structures (`struct sID stud[3]`):** - There are three instances of `struct sID`. - Total Memory = 3 * 20 = 60 bytes. 4. **Pointer to Structure (`struct sID *item`):** - This is just a pointer, typically 8 bytes on a 64-bit system. ### Total Memory Allocated: - Memory for `stud[3]`: 60 bytes - Memory for `*item`: 8 bytes Thus, the total memory allocated for all the variables in the segment is **68 bytes**.
Expert Solution
trending now

Trending now

This is a popular solution!

steps

Step by step

Solved in 2 steps

Blurred answer
Recommended textbooks for you
Computer Networking: A Top-Down Approach (7th Edi…
Computer Networking: A Top-Down Approach (7th Edi…
Computer Engineering
ISBN:
9780133594140
Author:
James Kurose, Keith Ross
Publisher:
PEARSON
Computer Organization and Design MIPS Edition, Fi…
Computer Organization and Design MIPS Edition, Fi…
Computer Engineering
ISBN:
9780124077263
Author:
David A. Patterson, John L. Hennessy
Publisher:
Elsevier Science
Network+ Guide to Networks (MindTap Course List)
Network+ Guide to Networks (MindTap Course List)
Computer Engineering
ISBN:
9781337569330
Author:
Jill West, Tamara Dean, Jean Andrews
Publisher:
Cengage Learning
Concepts of Database Management
Concepts of Database Management
Computer Engineering
ISBN:
9781337093422
Author:
Joy L. Starks, Philip J. Pratt, Mary Z. Last
Publisher:
Cengage Learning
Prelude to Programming
Prelude to Programming
Computer Engineering
ISBN:
9780133750423
Author:
VENIT, Stewart
Publisher:
Pearson Education
Sc Business Data Communications and Networking, T…
Sc Business Data Communications and Networking, T…
Computer Engineering
ISBN:
9781119368830
Author:
FITZGERALD
Publisher:
WILEY