Wieso so kompliziert?
Geht doch auch etwas einfacher:
Code:
char *func(char *buffer, char ch, size_t size) {
    int i = 0;
    for(i = 0; i < size; i++) {
        if(*buffer == ch) {
            return buffer;
            break;
        }
        buffer++;
    }


    return NULL;
}
Code:
char buf[] = "Hallo";
char *c = 0;


c = func(buf, 'a', sizeof(buf));


if(c == 0) printf("Fehler");
else printf("%c", *c);
mfg