是否可以在不调用的情况下从函数返回字符串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()
,我将返回值分配给 a 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 新手,仍在学习。