История изменений
Исправление bormant, (текущая версия) :
Как ты будешь возвращать из функции строку, созданную в рантайме?
Передавайте буфер (и его длину) внутрь функции, возвращайте адрес этого буфера.
#define AS(x) (sizeof(x)/sizeof(x[0]))
char *df( char *buf, size_t size ) {
...
return buf;
}
int main() {
char buf[10];
printf("%s\n", df(buf, AS(buf)));
return 0;
}
Исправление bormant, :
Как ты будешь возвращать из функции строку, созданную в рантайме?
Передавайте буфер (и его длину) внутрь функции, возвращайте адрес этого буфера.
#define AS(x) (sizeof(x)/sizeof((x)[0]))
char *df( char *buf, size_t size ) {
...
return buf;
}
int main() {
char buf[10];
printf("%s\n", df(buf, AS(buf)));
return 0;
}
Исправление bormant, :
Как ты будешь возвращать из функции строку, созданную в рантайме?
Передавайте буфер (и его длину) внутрь функции, возвращайте адрес этого буфера.
#define AS(x) (sizeof(x)/sizeof(x)[0])
char *df( char *buf, size_t size ) {
...
return buf;
}
int main() {
char buf[10];
printf("%s\n", df(buf, AS(buf)));
return 0;
}
Исходная версия bormant, :
Как ты будешь возвращать из функции строку, созданную в рантайме?
Передавайте буфер (и его длину) внутрь функции, возвращайте адрес этого буфера.