我想要一个指向模板结构数组的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 '
答案 0 :(得分:4)
数组衰减为指针,因此您不需要预先挂起地址运算符&
:
FrequencyEntry<std::string> * const arr_pointer = arr;
请注意,这是一个const
指针,这意味着您无法修改指针本身,但您可以通过指针修改它指向的对象。