Hallo,

ich möchte eine kleine Funktion schreiben die mir in einem Char-Array ein Zeichen sucht. Die Funktion soll mit einem Pointer auf das erste Zeichen, bei dem die Suche begonnen werden soll aufgerufen werden. Dieser Pointer als Parameter soll auch als Rückgabewert dienen. Hierbei happert es noch ein bisschen. Hier mal meine Funktion:

Code:
bool MoveBuffer2Char (volatile char **Buffer, char Char, U8 MaxChars)
{
 volatile char *CheckBuffer = *Buffer;
 
 while ((*CheckBuffer++ != Char) & (--MaxChars > 0));
 
 if (MaxChars > 0)
 {
  Buffer = &CheckBuffer;
  return (TRUE);
 }
 else
  return (FALSE);
}
Mein Aufruf sieht so aus:

Code:
volatile char RS232Buffer[0x50];
volatile char *Buffer = &RS232Buffer[0];

// ...

if (MoveBuffer2Char (&Buffer, ',', 6))
{
// ...
}
Leider steht die Variable Buffer nach dem Aufruf der Funktion wieder auf dem Startwert. Was mache ich falsch, bzw. wie mache ich es richtig?

Viele Grüße
Andreas