【问题标题】:Union with pointer to array与指向数组的指针联合
【发布时间】:2014-10-13 18:01:30
【问题描述】:

在 C++ 中,我想声明一个指针数组,它们可以是 unsigned charunsigned short,具体取决于某些输入。所以它想要么

unsigned char *data = new unsigned char[N];

unsigned short *data = new unsigned short[N];

最好的方法是什么?

【问题讨论】:

  • 选项二是否维护两个数组并使用一个指针,然后将其转换为对应的类型?
  • “最好的方法是什么?” 把它做成一个模板。
  • 如何分配每个输入类型,并始终向下转换为unsigned char*,然后根据输入从该数组中读取值(如有必要,稍后转换为short
  • 您想要指针数组或无符号字符/短裤数组?您的描述与代码冲突

标签: c++ unions


【解决方案1】:

“最好的方法是什么?”

使上下文模板化,例如

template<typename T, size_t N>
struct MyStuff {
    std::array<T,N> data;
}

template<typename T, size_t N>
struct MyStuff {
    std::vector<T> data;

    MyStuff() {
        data.resize(N);
    }
}

如果你真的需要动态分配

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-01-27
    • 1970-01-01
    • 2017-09-03
    • 2018-10-14
    • 1970-01-01
    • 2018-04-05
    • 1970-01-01
    • 2019-04-03
    相关资源
    最近更新 更多