C++中定义数组

char*z=newchar[1000];//申请一段空间strcpy(z,“....”);ints=strlen(z);//定义一个变量s赋初始值为z指针指向的内容的长... char *z=new char[1000]; //申请一段空间
strcpy(z,“....”);
int s=strlen(z); //定义一个变量s赋初始值为z指针指向的内容的长度
const int da=s; //定义一个常量da接受变量s的值
cout<<da; //检测da的值
char ab[da]; //定义字符串数组发生错误,错误如下
strcpy(ab,z);
delete z;

error C2057: expected constant expression
error C2466: cannot allocate an array of constant size 0
error C2133: 'ab' : unknown size
展开
 我来答
松甜恬0Je4ba
2011-11-24 · TA获得超过2.6万个赞
知道大有可为答主
回答量:7475
采纳率:100%
帮助的人:3348万
展开全部
静态定义数组,其元素必须是编译的时候就能确定的,不能使用你输入的值来定义静态数组,你可以修改为动态数组,就像你定义z一样,z就是一个动态数组。
追问
那么我需要用动态数组接受一组数据后,测出这组数据的长度,然后用这个长度来定义一个静态数组,我应该怎么做呢??
追答
静态数组就是编译的时候能够确定其长度的数组,如果你编译的时候不能确定其长度,那就不能使用静态数组,你为什么一定要使用静态数组,为什么不用动态呢????
钟离兴刘酉
2019-08-04 · TA获得超过3.6万个赞
知道大有可为答主
回答量:1.2万
采纳率:31%
帮助的人:851万
展开全部
一般来说是array的大小,因为只给int
array[]是没法知道array的大小的,这样会导致内存溢出等危险。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
网络兰兰
2011-11-24
知道答主
回答量:22
采纳率:0%
帮助的人:19万
展开全部
你申请的数组长度char ab[da],da是未知的,这是不允许的
追问
可是da在运行的当时是有确定的值啊,为什么不能作为数组的大小呢??
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
wingwf2000
2011-11-24 · TA获得超过1万个赞
知道大有可为答主
回答量:5889
采纳率:33%
帮助的人:1664万
展开全部
char ab[da]; //定义字符串数组发生错误,错误如下
你的da是动态的怎么能这样定义数组呢?
追问
可是我定义的是常量啊,难道常量还有动静态之分???
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式