c++ - 是否可以在 C++ 中动态填充 char* 数组

标签 c++ dynamic character-arrays

我有这样的情况。

declare array of char*;
switch(id)
{
case 1:
    add 4 words in array
case 2:
    add 2 words in array
default:
    add 1 word in array
}

use array here;

是否可以在 C++ 中做这样的事情。 我尝试这样做,但它对我不起作用。

最佳答案

是的。对于干净、易于理解、正确、异常安全的代码,请使用 vectorstring:

std::vector<std::string> v;

switch (id)
{
case 1:
    v.push_back("a");
    v.push_back("b");
    v.push_back("c");
    v.push_back("d");
    break;

case 2:
    v.push_back("a");
    v.push_back("b");
    break;

default:
    v.push_back("a");
}

// Use the strings in v; for example, using a C++11 lambda expression:
std::for_each(begin(v), end(v), [](std::string const& s)
{
    std::cout << s << std::endl;
});

// Or using a for loop:
for (std::vector<std::string>::const_iterator it(v.begin()); it != v.end(); ++it)
{
    std::cout << *it << std::endl;
}

当然,您可以使用数组和 C 字符串的手动动态分配和清理来实现类似的结果,但是这样做并确保代码正确和异常安全更加困难,并且需要更多代码。

关于c++ - 是否可以在 C++ 中动态填充 char* 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10889955/

相关文章:

c++ - C++ Graph Function 中的内存泄漏(valgrind 未具体在线)

c++ - 如何通过 C++ 从数字列表中生成 3 位数字?

c++ - 汇编代码的数据结构? [研究]

ruby-on-rails - 在 CMS 页面中呈现动态内容

c - K&R 1.9\\超出数组范围?

c++ - 如何将栈的pop实现为数组程序?

c++ - 为什么套接字(AF_INET、SOCK_DGRAM、IPPROTO_UDP)会失败?

c# - 获取动态创建的文本框的值

C: 为什么数组的元素需要通过内存地址扫描?

C++ 将字符串转换为字符数组