1

我想要一个指向模板结构数组的 const 指针。我遇到了一个错误,而且我对 C++ 不是很熟悉,所以我不确定从这里去哪里。有人可以解释如何正确执行此操作以及我做错了什么吗?提前致谢。

结构:

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 '
4

1 回答 1

4

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

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

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

于 2013-04-26T05:13:24.130 回答