?
Nexus schrieb:
Nein, aber so gibst du einen Zeiger auf ein lokales Objekt zurück, das ist auch nicht besser. Deshalb musst du den Speicher entweder kopieren oder etwas Dynamisches zurückgeben.
warum so umständlich? einfach einen zeiger auf den speicher übergeben, der befüllt werden soll:
void FPGetDateString (char *buff, size_t length)
{
...
snprintf (buff, length, ....);
...
}
^^ damit kannste z.b. den 'DateString' direkt irgendwo einsetzen ohne irgendwelche kopierorgien, beispiel
char buff[100];
size_t lenght;
...
strcpy (buff, "heute ist: ");
lenght = strlen (buff);
FPGetDateString (buff+lenght, sizeof(buff)-lenght);
...
Th69 schrieb:
Wenn du jedoch C++ programmieren willst, so solltest du die Klassen std::string (statt char*) sowie std::stringstream (statt sprintf) einsetzen...
'stringstream' ist im vergleich zu 's(n)printf' ziemlich umständlich zu benutzen. ich schätze, so mancher c++-jünger würde auch lieber aus gründen der einfachheit zu s(n)printf greifen.