免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 3938 | 回复: 9
打印 上一主题 下一主题

没有声明长度的数组在内存中如何处理? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2004-03-09 10:08 |只看该作者 |倒序浏览
问,在c++中,如果数组的长度不被声明,内存会为它分配足够大的空间,但内存是怎么分配和处理的呢?这样是不是很浪费资源?
例如:
     int irs[][2];

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
2 [报告]
发表于 2004-03-09 10:15 |只看该作者

没有声明长度的数组在内存中如何处理?

能编译通过吗?

论坛徽章:
0
3 [报告]
发表于 2004-03-09 10:25 |只看该作者

没有声明长度的数组在内存中如何处理?

例如:int sqrs[][2]={
                               1,1
                               2,2
                                   }
这样定义后,你在程序中还可对它的长度进行动态的改变
还有比如:char str_first[];
               这样声明后,在内存中str_first为多大空 间?它怎么分配?

论坛徽章:
0
4 [报告]
发表于 2004-03-09 10:34 |只看该作者

没有声明长度的数组在内存中如何处理?

你赋值的时候已经等于确定了数组的大小.

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
5 [报告]
发表于 2004-03-09 10:38 |只看该作者

没有声明长度的数组在内存中如何处理?

[quote]原帖由 "zjwyp1980"]           这样声明后,在内存中str_first为多大空 间?它怎么分配?[/quote 发表:

你既然赋了值,编译器就按照你赋值的大小来给
它们分配空间。
你如果不赋值,看看编译器告诉你什么。

论坛徽章:
0
6 [报告]
发表于 2004-03-09 11:05 |只看该作者

没有声明长度的数组在内存中如何处理?

谢谢各位。
但char str_first[]; 定义过后,
  比如我写到str_first="hello!"
  能说str_first[]的大小(长度)为6
    又写到str_first="This is test!"
     这时str_first[]的大小又变成14吗?
---------------------------------------------
如果我写到: char str_first[10];
                  那么程序在运行时就指定长度为10了。
            但char str_first[]时,程序运行时,所分配的空间一定不是上面的6或14.

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
7 [报告]
发表于 2004-03-09 11:20 |只看该作者

没有声明长度的数组在内存中如何处理?

[quote]原帖由 "zjwyp1980"]蛟诵惺保??峙涞目占湟欢ú皇巧厦娴?或14.[/quote 发表:

我只想问你,你的这些代码上机运行了吗?
能编译通过吗?
自己试试好不好。

论坛徽章:
0
8 [报告]
发表于 2004-03-09 11:20 |只看该作者

没有声明长度的数组在内存中如何处理?

这样的代码难道编译通过了吗?

论坛徽章:
0
9 [报告]
发表于 2004-03-09 11:27 |只看该作者

没有声明长度的数组在内存中如何处理?

多谢各位!

论坛徽章:
0
10 [报告]
发表于 2004-03-10 21:12 |只看该作者

没有声明长度的数组在内存中如何处理?

这样的代码 char str[]; 编译肯定是通不过的。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP