关于c++中a[n]的赋值问题

intn;inta[n]={0};这么做错误,那么如何直接将a[n]全部初始化到0.补充一下,应该是这样。intn;cin>>n;inta[n]={0};... int n;
int a[n]={0};

这么做错误,那么如何直接将a[n]全部初始化到0.
补充一下,应该是这样。
int n;
cin>>n;
int a[n]={0};
展开
 我来答
夜太美gs
2019-04-15 · TA获得超过104个赞
知道小有建树答主
回答量:163
采纳率:57%
帮助的人:24.5万
展开全部
时间过去这么久了,估计题主也不需要了,我还是答一下方便后来人看吧。
memset是可以的
void* memset(void *_Dst, int _Val, size_t _Size)
_Dst是目标起始地址,_Val是要赋的值,_Size是要赋值的字节数
我再说一种更简单的,new就行啦
int x;
cin>>x;
int *a =new int[x];
for(int i=0;i<x;i++)
a[i]=0;
yy_神_xx
2015-05-22 · TA获得超过680个赞
知道小有建树答主
回答量:599
采纳率:0%
帮助的人:390万
展开全部
如果要n是可变的,局部变量做不到。必须要动态申请内存
如果你是初学,建议直接用固定的大数,比如 int a[1000]={0};
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友53a4e24
2015-05-22 · TA获得超过155个赞
知道小有建树答主
回答量:127
采纳率:0%
帮助的人:72.6万
展开全部
错误的原因是:数组a的大小n需要是一个常数,而不是变量。
应该用:
define n 10
int a[n] = {0}; // 这一句没有错
更多追问追答
追问
关键是这个n值不固定,需要在程序中输入,那么该如何做。
追答
首先,先初始化一个足够大的数组,比如:
define N 100;
int a[N] = {0};
然后,输入你需要的n值。
int n;
scanf("%d", &n);
剩下的没有用到的数组空间,就不要管了。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
毕设指导
2015-05-22 · TA获得超过154个赞
知道答主
回答量:156
采纳率:0%
帮助的人:119万
展开全部
int [n] a;
for(int i=0;i<n;i++){
a[i]=0;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
射手小小王
2015-05-22 · TA获得超过398个赞
知道小有建树答主
回答量:716
采纳率:85%
帮助的人:265万
展开全部
memset(a,n,0x00)
追问
能否再清楚些?
追答
不好意思,刚才弄错了,
int b[10];
memset(b,0x00,10);
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式