Medium data structure and algorithm practice puzzle.
Given the sizes of a C struct's fields in declaration order, return the size of the struct in bytes. Each field must start at an address that is a multiple of its own size, so the compiler inserts padding in front of any field that would not, and the whole struct is padded at the end to a multiple of its largest field, so that an array of them keeps every element aligned too. That is why a char, an int and a char take 12 bytes rather than 6, and why reordering fields can shrink a struct.
Solve it three ways: snap the jigsaw pieces together, fill in the blanks, or type it from scratch against the tests. This one is free.
Every line of the solution comes with a note explaining why it is there, and a step by step replay shows the code running. At level 3, where you type it yourself, you can ask for an AI mock interview on this problem that ends with a hiring manager's scorecard.
Browse all 546 puzzles