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”
作为二进制文件的一部分,这将在堆栈上创建一个指向其中一个的指针。