2013-04-26 71 views
1

我想要一个指向模板结构数组的const指针。我遇到了一个错误,并且我对C++不是很熟悉,所以我不确定从哪里开始。有人可以解释如何正确地做到这一点,我做错了什么?提前致谢。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

'&arr'是数组的地址,应该只指定'arr',读取错误信息 – 2013-04-26 05:13:10

回答

4

数组衰变为指针,所以你不需要预先登记地址运营商&

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

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

+0

这非常合理。谢谢! – Salis 2013-04-26 05:22:52