@Wutz sagte in Frage zur Rückgabe eines Zeigers:
const int
ist sinnfrei, weil es Falsches suggeriert.
Es ist sinnfrei, eine Stringkonstante innerhalb der Funktion so zu verwenden wie du es zeigst.
#include <stdio.h>
#include <string.h>
char *foo(char *string,int length,const char *new)
{
sprintf(string,"%.*s",length,new);
return string;
}
int main()
{
const char *s=foo((char[255]){0},255,"test123");
puts(s);
return 0;
}
Und das ist in C Best-Practice? Finde ich ehrlich gesagt fast noch verwirrender als die Variante des TE...