c++ - 从函数返回字符串....限制?

标签 c++ c string

我很想知道我有这个特殊的代码包

char* usage()
     {
         static char errors[] = {"Sorry Invalid Option entered\nPlease Enter an appropriate option"};        
         return errors;
     }

我已经正确地调用了这个函数,它做了我想要的。然而,只要我这样做......我就会遇到很多错误。

char* usage()
     {
         static char errors[] = {"Sorry Invalid Option entered\n
                                 Please Enter an appropriate option"};        
         return errors;
     }

我所做的只是将第二行放在下面一行,我得到了错误。现在,我只想知道两者之间有什么区别?我似乎在两个字符数组中输入了相同的参数。是因为我没有为数组分配空间吗?

最佳答案

C 和 C++ 不以这种方式支持多行字面量,但您可以这样使用:

char* usage()
{
     static char errors[] = {"Sorry Invalid Option entered\n"
                             "Please Enter an appropriate option"};        
     return errors;
}

注意额外的引号!

关于c++ - 从函数返回字符串....限制?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15556215/

相关文章:

c++ - ECG 风格的实时 QCustomPlot

c++ - stringstream sgetn 在 iOS 5.1 上返回 NULL

C++模板非类型参数类型推导

c - Linux 被动等待条件更新

c++ - 引用对象 vector ?

c - _mm_lfence() 时间开销是不确定的?

java - 是否有允许识别多个键盘的 Java/C 库?

java - += 比 concat 更有效吗?

java - 从 url 字符串中检索一些文本并保存到一个单独的字符串

java - 一次搜索字符串中的多个字母