C++指针问题 error C2100: illegal indirection

int*label;label=newint[20];label=newint[20];for(inti=0;i<20;i++)//初始赋值{label[i]=0;}--... int* label;
label=new int[20];
label=new int[20];
for(int i=0;i<20;i++)//初始赋值
{
label[i]=0;
}
------------------------
后面用到时,if(label[i]==1) 就出错了,i是我的循环变量,有值了。error C2100: illegal indirection
展开
 我来答
百度网友edd6353bd
推荐于2018-03-07 · TA获得超过1161个赞
知道小有建树答主
回答量:2513
采纳率:0%
帮助的人:1387万
展开全部
这个程序没有上下文,很难说的,illegal indirection错误产生的原因一般是:如果把一个实变量当作一个指针赋值,则产生C2100编译错误。例如,
int r = 0, *s = 0;
*r = 200; // error C2100 :!!!!!
// try
*s = 200; //这句话不会报错
MarsCode
2024-08-21 广告
MarsCode 为你提供了编程助手和 IDE 来协助你完成编程任务。 MarsCode 编程助手提供以智能代码补全为代表的 AI 功能。它支持主流的编程语言和 IDE,在开发过程中提供单行代码或整个函数的编写建议。此外,它还支持代码解释、... 点击进入详情页
本回答由MarsCode提供
jaycnvip
2009-03-08 · TA获得超过767个赞
知道小有建树答主
回答量:998
采纳率:100%
帮助的人:620万
展开全部
循环变量i的生存期仅限于循环体,离开循环体是不能访问它的。你必须重新定义一个变量,如int j=0,然后再利用j作为下标循环取值。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
__int64
2009-03-05 · TA获得超过663个赞
知道小有建树答主
回答量:484
采纳率:0%
帮助的人:385万
展开全部
int i;
for(i=0;i<20;i++)//初始赋值
{
label[i]=0;
}

这样写试试,i 超出生命周期了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
aksheng
2009-03-05
知道答主
回答量:7
采纳率:0%
帮助的人:6.4万
展开全部
可能是你的 i 超过了前面new int[]里的数字,比如i大于或等于20
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式