| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 543 人关注过本帖
标题:数组的初始化,
只看楼主 加入收藏
未未来
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:182
专家分:157
注 册:2012-11-6
结帖率:94.87%
收藏
已结贴  问题点数:5 回复次数:7 
数组的初始化,
程序代码:
#include<iostream>
using namespace std;
void iii(int x){

int d[x]={0};

}
int main(){
    int t=10;
iii(t);
return 0;

}

为什么这样初始化一个函数里面的数组不可以,
2014-03-05 00:30
未未来
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:182
专家分:157
注 册:2012-11-6
收藏
得分:0 
回复 楼主 未未来
报错:variable-sized object 'd' may not be initialized-
2014-03-05 00:32
fl8962
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:14
帖 子:539
专家分:2471
注 册:2012-10-17
收藏
得分:1 
#include<iostream>
using namespace std;
void iii(int x){

int *d={0};

}
int main(){
    int t=10;
iii(t);
return 0;

}

想抽苏烟了。
2014-03-05 04:57
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:1 
初始化应该由调用者完成

DO IT YOURSELF !
2014-03-05 07:45
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9007
专家分:53942
注 册:2011-1-18
收藏
得分:3 
1. C++不支持变长数组(VLA)
   g++支持VLA,但这是非标准的
   在C++中应当用std::vector来替代VLA
2. 即使是C的VLA,也不支持"初始化操作"
2014-03-05 08:35
未未来
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:182
专家分:157
注 册:2012-11-6
收藏
得分:0 
回复 5楼 rjsp
你是指在C++学习运用过程中尽量不用数组用vector吗。
2014-03-05 17:44
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9007
专家分:53942
注 册:2011-1-18
收藏
得分:0 
以下是引用未未来在2014-3-5 17:44:27的发言:

你是指在C++学习运用过程中尽量不用数组用vector吗。

不是,能用 原生数组 或 std::array 的,就应该尽量用它们。
C++中没有VLA,所以在这种情况下(即无法使用使用 原生数组 或 std::array 的情况下),C++得用 std::vector
2014-03-06 08:20
未未来
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:182
专家分:157
注 册:2012-11-6
收藏
得分:0 
回复 7楼 rjsp
受教了,
2014-03-06 23:53
快速回复:数组的初始化,
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.015064 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved