#include // Assuming this is aligned itself on a 4 byte boundary struct pizza_t { char size[10]; //Offset 0 //2 bytes padding int price_cents; //Offset 12 }; //Size 16 struct pizza_t pizza_options[3] = { {"small", 300}, {"medium", 550}, {"large", 800} }; void print_pizza_t(struct pizza_t *pizza); void increase_price(struct pizza_t *pizza, int increase_cents); //$ra //$s0 i //$s1 tmp_pizza_ptr int main(void) { printf("The available pizza options are:\n"); int i = 0; main_loop: if (i >= 3) goto main_loop_end; //while (i < 3) { struct pizza_t *tmp_pizza_ptr = &pizza_options[i]; increase_price(tmp_pizza_ptr, 100); print_pizza_t(tmp_pizza_ptr); i = i + 1; goto main_loop; main_loop_end: return 0; } void print_pizza_t(struct pizza_t *pizza) { printf("Size: "); printf("%s", pizza->size); printf(", price: "); printf("%d",pizza->price_cents); printf(" cents\n"); } void increase_price(struct pizza_t *pizza, int increase_cents) { pizza->price_cents = pizza->price_cents + increase_cents; }