c++ - 如何用字符串文字初始化 const char []

标签 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* 的方法,我想在发送它之前创建一个局部变量。我无法分配动态内存,但我可以使用比必要更大的数组(在本例中我将其设为 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" );

然后使用数组作为方法的参数。

关于c++ - 如何用字符串文字初始化 const char [],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66912313/

相关文章:

c++ - 如何在 C 和 C++ 代码之间共享变量?

c++ - C++ 中的 char* 和 cin

python - 如何检查数组的所有元素是否都在两个值之间

javascript - 如何将数组拆分为两个子集并使数组的子值之和尽可能相等

perl - 哈希中的加号是什么意思?

c++ - #define 和 const 的分配

c++ - C++解析命令行参数和 boolean

c++ - 尝试将 Struct 指针传递给类时出错

c++ - 在 C++ 复制省略期间如何管理内存?

c# - 分发时只需要常量的 DLL 吗?