Cull中的Null终止数组

Chr*_*_vr 0 c++

我想在构造函数中创建NULL终止数组.

class Test
{
    char name [30];
    char Address[100]
};

Test::Test()
{
    memset(name ,0, 30);
    memset(Address, 0, 100);
}
Run Code Online (Sandbox Code Playgroud)

这是将数组初始化为NULL的正确方法吗?

这有什么好的选择吗?

Fre*_*son 5

我可能会这样做:

class Test
{
    std::string name;
    std::string address;
};
Run Code Online (Sandbox Code Playgroud)

  • @Chris_vr:-1,因为你没有在你的问题中指定你的神秘约束,然后抱怨一个完美的答案. (6认同)
  • @Chris_vr:你为什么允许使用C++标准库(`memset`)的某些部分而不是其他部分(`std :: string`)?你在使用C++吗? (4认同)

Fer*_*cio 5

如果您计划使用C风格的字符串,则只需将第一个字符设置为空终止符.

name[0] = Address[0] = 0;
Run Code Online (Sandbox Code Playgroud)

但是,从长远来看,你最好还是使用它std::string.