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 展开
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 展开
4个回答
展开全部
一般来说是array的大小,因为只给int
array[]是没法知道array的大小的,这样会导致内存溢出等危险。
array[]是没法知道array的大小的,这样会导致内存溢出等危险。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你申请的数组长度char ab[da],da是未知的,这是不允许的
追问
可是da在运行的当时是有确定的值啊,为什么不能作为数组的大小呢??
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
char ab[da]; //定义字符串数组发生错误,错误如下
你的da是动态的怎么能这样定义数组呢?
你的da是动态的怎么能这样定义数组呢?
追问
可是我定义的是常量啊,难道常量还有动静态之分???
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询