ganz wichtig:
das solltest du unterlassen. Das ist wie in Delphi ein NoGo.
Adressen auf lokale Variablen gibt man nicht zurück. Vielleicht lag da ja dein Fehler.
Ahh, jetzt verstehe ich deinen Ausgangsquelltext. Ja, man kann das Array doch abziehen. Verständlicher ist es wenn du anstelle des Arrays dort die Adresse des Arrays nimmst (&array[0])
Mit deinen Funktionen würde es so aussehen
Code:
programPfad[strrchr(programPfad, '\\') - &programPfad[0]] = 0;
strcpy(songpfad, programPfad);
strcat(songpfad, "\\songs\\");
wobei songpfad eben keine lokale variable sein darf wenn du diese mit return zurück gibst. Übergebe diese Variable lieber als Parameter