C++ 如何使用字符串文本初始化常量char[]

C++ 如何使用字符串文本初始化常量char[],c++,arrays,constants,declaration,c-strings,C++,Arrays,Constants,Declaration,C Strings,我想做以下工作: const char errorMsg [64] ( useApple ? "Error Msg Apple\n" : "Error Msg Bee\n" ); MyMethod ( errorMsg ); 对于具有签名的方法: MyMethod(const char* errorMessageInput ); 我有一个方法,它接受一个const char*,我想在发送它之前创建一个局部变量。我不能分配动态内存,但我可以使用比需要更大

我想做以下工作:

const char errorMsg [64] ( useApple ? "Error Msg Apple\n" : "Error Msg Bee\n" );
MyMethod ( errorMsg );
对于具有签名的方法:

MyMethod(const char* errorMessageInput );

我有一个方法,它接受一个const char*,我想在发送它之前创建一个局部变量。我不能分配动态内存,但我可以使用比需要更大的数组(在本例中,我将其设置为64)。如何编译这段代码?

而不是像这样声明一个指针的数组

const char *errorMsg = useApple ? "Error Msg Apple\n" : "Error Msg Bee\n";
事实上,如果方法参数的类型为
const char*
,则无需声明常量数组

你可以写一个例子

#include <cstring>

//...


char errorMsg [64];

strcpy( errorMsg, useApple ? "Error Msg Apple\n" : "Error Msg Bee\n" );
#包括
//...
charerrormsg[64];
strcpy(errorMsg,useApple?“Error Msg Apple\n”:“Error Msg Bee\n”);

然后将数组用作该方法的参数。

const char*errorMsg=useApple?“Error Msg Apple\n”:“Error Msg Bee\n”
;甚至只是:
MyMethod(useApple?“Error Msg Apple\n”:“Error Msg Bee\n”)
首选
std::string
std::string\u视图
而不是
char*
@zDoctor:这不会在堆栈上创建数组。该代码将
“Error Msg Apple\n”
“Error Msg Bee\n”
作为二进制文件的一部分,这将在堆栈上创建一个指向其中一个的指针。