// Error: un contexto de otro tipo, del mismo tamaño o mayor. Nadie lo detecta.
#include <stdio.h>

#define COUNT 3

typedef void (*Visitor)(int value, void *context);

void print_if_above(int value, void *context) {
    int *limit = context;
    if (value > *limit) {
        printf("%d pasa\n", value);
    }
}

void for_each(const int *values, int n, Visitor visit, void *context) {
    for (int i = 0; i < n; i++) {
        visit(values[i], context);
    }
}

int main(void) {
    int grades[COUNT] = {14, 9, 20};
    double limit = 15.0;
    for_each(grades, COUNT, print_if_above, &limit);
    printf("fin\n");
    return 0;
}
