Eigentlich sollte der Code 3 mal den Sound abspielen, macht er aber nicht (spielt nur einmal) - außer ich verwende anstatt der lokalen Variable ein eindimensionales Array (auskommentierte Variante) oder eine globale Variable, dann funzt alles wie es soll.
...oder mach ich trotz Absprache mit fachkundigem Personal etwas falsch?
Wenn ich mich nicht irre darfst du das wait(-1) in der Funktion testfunc nicht in der Art verwenden. Soviel ich weiß darfst Du in einer Funktion, in die Du Pointer als Parameter übergibst kein wait() verwenden, bevor Du die übergebenen Pointer verwendet hast, da du durch das Multitasking ansonsten nicht mehr den richtigen Pointer in der Hand hast ...
In der Anleitung findest Du auch folgenden Hinweis am wait-Befehl:
While the content of local variables is preserved, their addresses change after every wait() because the function runs every time in a different stack frame.
This is one of the reasons why using pointers is sometimes difficult for beginners. Your code can not work this way, unless you declare "test" as "static". Non-static variables live on the stack only, and don't have a fixed address.