/**
* 63. Struct Padding
*
* You are given a struct with the following fields in order:
* char a
* int b
* short c
*
* Your task is to:
* Declare a variable of this struct
* Compute the offset (in bytes) of each field from the base address of the struct (i.e., &s)
* Print:
*
* Offset of a
* Offset of b
* Offset of c
*
* Total size of the struct
*
*/
#include <stdio.h>
typedef struct {
char a;
int b;
short c;
} MyStruct;
void print_offsets() {
MyStruct s;
printf("Offset of a: %ld\n", (char*)&s.a - (char*)&s);
printf("Offset of b: %ld\n", (char*)&s.b - (char*)&s);
printf("Offset of c: %ld\n", (char*)&s.c - (char*)&s);
printf("Size: %ld\n", sizeof(s));
}
int main() {
print_offsets();
return 0;
}
Solving Approach
Upvote
Downvote
Loading...
Input
Expected Output
Offset of a: 0
Offset of b: 4
Offset of c: 8
Size: 12