Man könnte z.b. CString (mfc) benutzen, oder aber "zirkulierende" statische puffer. Nicht gerade elegant, aber wirkungsvoll. Die rückgabe von neu allokierten speicherbereichen bringt hingegen nur stress mit memory leaks, solange nicht eine klasse, wie bei CString darüber wacht. Sich mit der mfc ins bett zu legen, wenn man noch ohne sie auskommt, sollte man sich auch mehrfach überlegen.
#define MAX_CALLS 5 //anzahl maximaler "gleichzeitiger" aufrufe
char buff[MAX_CALLS][1024];
char* holeZeile(int ZeilenNr){
static n=0;
n=(n+1)%MAX_CALLS;
//fülle buff[n] z.b.:
sprintf(buff[n], "[%d]", ZeilenNr);
return buff[n];
}
ruft man dann z.b. in der konsole:
printf(":%s:%s:%s:%s:%s:\n", holeZeile(1), holeZeile(3), holeZeile(5), holeZeile(7), holeZeile(9));
auf, gibt es
:[1]:[3]:[5]:[7]:[9]:
zu sehen.
mr.escape