将const数组指针赋给非const数组指针

时间:2017-09-12 11:34:14

标签: c++ pointers const

#include <iostream>

int main()
{
          const int l_loc[3] = {1,2,3};
          int (*l_loc2)[3] = NULL;
          l_loc2 = const_cast<int (*)[3]>(l_loc);   // complaining here. 
          std::cout<<l_loc2[1]<<std::endl;
                   return 0;
}

./ example.cpp:7:错误:从'const int *'类型的const_cast无效到'int(*)[3]'

我只能修改那条尖锐的线条。任何线索请。

1 个答案:

答案 0 :(得分:0)

    java.lang.ClassCastException: 
    com.google.common.collect.Maps$TransformedEntriesMap cannot be cast to 
    org.openqa.selenium.WebElement

#include <iostream> int main() { const int l_loc[3] = {1,2,3}; int (*l_loc2)[3] = NULL; l_loc2 = const_cast<int (*)[3]>(l_loc); // complaining here. std::cout<<l_loc2[1]<<std::endl; return 0; } 是指向数组中第一个整数的指针。它包含的地址是不变的。您无法重新指定l_loc指向另一个整数常量数组。这就是为什么你还必须施放l_loc的地址。因此,您需要传递l_loc的地址,即l_loc2 = const_cast<int (*)[3]>(l_loc),而不是l_loc。结果&l_loc我希望这会有所帮助。