[八卦] 多维数组是怎么样初始化的?
player7
2007-05-14
我的程序用到一个2维数组,
用: Cell[100][100] cells; //可以使用,但是体积增大了300多K 用: Cell[][] cells; cells = new Cell[100][100] ; //错误 最后用: Cell[][] cells; cells.length = 100 ; for(int i=0;i<cells.length; i++) cells[i]= new Cell[100]; |
|
qiezi
2007-05-14
player7 写道 我的程序用到一个2维数组,
用: Cell[100][100] cells; //可以使用,但是体积增大了300多K 怎么我测试没有增大呢。。 它是在栈上分配的,最好避免分配太多,可能导致栈溢出。 player7 写道 用: Cell[][] cells; cells = new Cell[100][100] ; //错误 最后用: Cell[][] cells; cells.length = 100 ; for(int i=0;i<cells.length; i++) cells[i]= new Cell[100]; 用后面这种就行了,没必要用new,直接改长度: Cell[][] cells; cells.length = 100 ; foreach(ref c; cells) c.length = 100; |
|
player7
2007-05-14
我用的DFL试的,像下面这种体积更大,从300K 涨到 3.4M
class MyForm: dfl.form.Form { ... int[900][900] uts; ... this() { initializeMyForm(); for(int i=0;i<900;i++) for(int j=0;j<900;j++) uts[j][i]=100; |
|
qiezi
2007-05-14
。。原来是类的成员,我是在函数里测试的。它为了提高效率,会把类的init保存到静态数据区,初始化时先用这块数据初始化内存,再调用构造函数,现在增大的是静态数据。
这刚好形成两种方案,一种是使用运行期时间,国一种是空间换时间,当然这个时间本来就很少,占用空间就不合算了,自己取舍吧。 |
|
yayv
2007-05-15
http://www.pyapp.com/D-Array-2/
|
相关讨论
相关资源推荐
- \t\t在Windows桌面无缝运行Linux程序(转载)
- 在Linux上运行Windows软件的4种以上方法
- windows2012运行linux,在 Windows Server 2012 R2 Hyper-V 上提供 Linux 支持
- Linux下通过rdesktop连接Windows远程桌面
- windows10安装kali-linux指南(wsl),含kali桌面、中文
- 6个工具帮助你在Windows上轻松运行Kubernetes
- wsl linux 桌面_(Windows)桌面上Linux年-WSL技巧和窍门
- Linux系统(Ubuntu,openSUSE 等)如何安装windows的软件?
- [工业互联-16]:工业Windows操作系统与实时性方案
- Andlinux,让你在Windows系统下完美体验Linux