c和c++定义数组会比原来的大?
在定义一个数组,如ary[2]
数组的大小不是2,也不是3,而是更大一些
C++中用new的时候,也是一样
我猜想是不是内部处理的时候会给出比较大的空间,减少程序员定义时的错误呢 达人们怎么认为呢?
C++中用new的时候,也是一样
我猜想是不是内部处理的时候会给出比较大的空间,减少程序员定义时的错误呢 达人们怎么认为呢?
不懂你什么意思?什么数据占多大空间你搞错了吧
main() { int ss[5]; int a; char bb[5]; char g; printf("%d %d %d %d",sizeof(ss),sizeof(a),sizeof(bb),sizeof(g));
}
10 2 5 1
你说的大应该是溢出的问题,你可以显示ary[3]等等,但那个是不对的!
如果只是读问题还不是太大,但写就回出现大问题了!
[此贴子已经被作者于2004-07-01 17:34:53编辑过]
长度和占多大空间的概念是怎么样的呢
这个ary[5]不是只能放4个字符和一个\0吗
main() {
char ary[5];
int i;
i = strlen(ary);
printf("%d", i);//这里输出结果的长度为什么会是11?
printf("%d", sizeof(ary));
}
[此贴子已经被作者于2004-07-01 19:25:32编辑过]
因为你没有加'\0',这11是个随机数。
strlen(ary);只有遇到了'\0'才会返回