C ++ - 指向模板结构数组的指针

时间:2013-04-26 05:11:29

标签: c++ pointers

我想要一个指向模板结构数组的const指针。我收到了一个错误,我对C ++不太熟悉,所以我不确定从哪里开始。有人可以解释一下如何正确地做到这一点以及我做错了什么?提前谢谢。

STRUCT:

template <typename T> struct FrequencyEntry {
    unsigned short freq;
    T result;
};

代码:

FrequencyEntry<std::string> arr[] = {
    {5, std::string("test")},
    {10, std::string("asdf")},
};

FrequencyEntry<std::string> * const arr_pointer = &arr;

最后一行发生错误:

error C2440: 'initializing' : cannot convert from 'FrequencyEntry<T> (*)[2]' to 'FrequencyEntry<T> *const '

1 个答案:

答案 0 :(得分:4)

数组衰减为指针,因此您不需要预先挂起地址运算符&

FrequencyEntry<std::string> * const arr_pointer = arr;

请注意,这是一个const指针,这意味着您无法修改指针本身,但您可以通过指针修改它指向的对象。