Challenge 2: apply_to_all With a print_doubled Callback — Possible Solution ==================================================================== #include void print_doubled(int x) { printf("%d\n", x * 2); } void apply_to_all(int *arr, int n, void (*fn)(int)) { for (int i = 0; i < n; i++) { fn(arr[i]); } } int main() { int nums[5] = {1, 2, 3, 4, 5}; apply_to_all(nums, 5, print_doubled); return 0; } Output: 2 4 6 8 10 WHY THIS WORKS AS AN ANSWER ------------------------------ apply_to_all follows the chapter's own callback pattern exactly -- its third parameter is a function pointer type matching print_doubled's own signature (void, taking one int) -- and passing print_doubled by name relies on the same function-to-pointer decay Challenge 1 also used, letting apply_to_all invoke fn(arr[i]) once per array element without knowing at compile time which specific function it's calling.