在c中返回空字符串

Mis*_*Tek 5 c string

在我的函数中我想返回一个空字符串"",函数看起来像这样:

char *myFunction(nodeType *arg){
   if (something){
      return anotherFunction(arg);
   } else {
      return EMPTYSTRING;
   }
}
Run Code Online (Sandbox Code Playgroud)

(应该用正确的表达式替换EMPTYSTRING以返回"")

我提出了一些方法:

return ""

return '\0'
Run Code Online (Sandbox Code Playgroud)

返回空字符串的正确方法是什么?

Ade*_*dem 8

返回""并不是一个好主意.因为它是const char,你可能会尝试将它从函数中取出来,这可能会使你的应用程序崩溃.

所以,我会回来strdup(""),所以你可以安全地释放它.

  • 我不会假设在没有看到代码的情况下otherFunction分配了内存 (2认同)