Можно ли вернуть строку из функции без вызова malloc
?
У меня есть функция, как показано ниже:
char* getString(){
char tempStr[20]
// open file, read char by char and assign to tempStr
// ....
char* str = (char*)malloc(sizeof(char)*20);
strcpy(str, tempStr); // assume this copy the null terminating char as well
return str;
}
И затем, когда я вызываю getString()
, я присваиваю возвращаемое значение char*
, а затем освобожу его, когда закончите, как показано ниже:
void randomFunction(){
char* line = NULL;
int i = 0;
while (i < 1000) {
line = getString();
// do stuff with line
free (line);
line = NULL;
}
}
Однако мне интересно, есть ли способ сделать это без malloc
? И, это правильный способ вернуть строку из функции C?
Я попытался сделать некоторые исследования относительно того, как вернуться без malloc
, но не нашел четких ответов. Я новичок в C и до сих пор учился.