gpt4 book ai didi

c++ - 使用动态长度的字符串初始化具有 char 数组成员的结构

转载 作者:行者123 更新时间:2023-11-28 02:57:24 27 4
gpt4 key购买 nike

我有一个带有 char 数组的结构和一个使用定义的字符串初始化数组的构造函数。我想避免 #define 而是将 C++ 字符串传递给构造函数。但话又说回来,char 数组的大小在编译时是未知的。什么是解决此问题的好方法?

#define STRING_ "myString"

struct myStruct {

int nCode;
char str1[sizeof(STRING_)];
myStruct ()
{
nLangCode = 0x0409;
strcpy(str1, STRING_ );
}
} ;

最佳答案

如果您只知道运行时的大小,则无法将您的成员声明为数组,因为可变长度数组不是 C++ 功能。只需使用 std::string

struct myStruct {

int nCode;
std::string str1;
myStruct () : str1(STRING_)
{
nLangCode = 0x0409;
}
} ;

这样您就不必担心复制构造函数、赋值运算符和析构函数——这是其他两个答案所遗漏的。

关于c++ - 使用动态长度的字符串初始化具有 char 数组成员的结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21675560/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com