打印

数组初始化问题

[复制链接]
1207|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
pkat|  楼主 | 2013-12-31 20:23 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
ST, TE, AN, TI, style
char * words[] = {"stately", "plump", "buck", "mulligan"};

    // calculate how many elements in words
    size_t words_size = sizeof(words)/sizeof(char *);

    // use entire array to initialize words2
    list<string> words2(words, words + words_size);//出错
树上的代码,但是那一行一直出错,错误提示:
error C2664: '··· : c
annot convert parameter 1 from 'char *[4]' to 'unsigned int'
        This conversion requires a reinterpret_cast, a C-style cast or function-style cast
求指教

相关帖子

沙发
火箭球迷| | 2013-12-31 20:35 | 只看该作者
换个编译器吧

使用特权

评论回复
板凳
sinadz| | 2013-12-31 20:47 | 只看该作者
可能是你的编译器太老了,我的vs2013可以编译

使用特权

评论回复
地板
无冕之王| | 2013-12-31 20:57 | 只看该作者
我用vs2012试了lz的代码也木有出错,或许LZ可以用下面的代码试试
//const char **tbeg = words 无法编译,不允许这样转换
    //char *const*tbeg = words 可以转换,但后面list的构造会出现和LZ同样的错误
    //char **const tbeg = words 可以转换,也同样不会出错,这种方式或许是最好的,不过确实让人看着眼花
    char **tbeg = words;
    char **tend = words + words_size;
    list<string> words2(tbeg, tend);
上面的代码我都是在vs2012上试的~

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

196

主题

2726

帖子

0

粉丝