回答
简单的答案是否定的,这是不能做到的。因此名称为“静态”。
现在,许多语言的东西看起来像静态分配的数组,但实际上是静态分配的对动态分配数组的引用。那些你可以调整大小。
在VB .NET这将是:
Redim Preserve ArrayName(NewSize)
不知道什么语言特点你后虽然...
而且我也不会用这个命令有很多...它可怕效率低下。链接列表和不断增长的数据结构更加高效。
我也同意基思兰德尔,尽管看起来好像我写的语句重新定义了数组的大小它的原因效率低下的原因在于幕后实际上只是制作新的大小的第二个静态数组,将值复制到其中,然后删除旧的数组。 – Jrud 2009-11-05 04:48:49
不是。有两个选项:
- 使用动态一个
- 或者,在浪费内存的风险,如果您有关于元素的数组将存储的最大数量的想法,静态相应地分配
是的,那是C.
如果您小心,可以使用alloca()
。该数组在堆栈中分配,但就代码风格而言,它与使用malloc
(您不需要free
它自动完成)很相似。我会让你决定是否调用一个“静态”数组。
这不是一个你正在谈论的动态数组吗? – 2009-11-05 04:55:37
我并不确定你对静态数组有什么用处。如果有用的部分是你不必担心释放它们(并且你不关心这个语言是否提供漂亮的语法来创建它们),那么alloca就可以做到这一点。 – 2009-11-05 05:04:59
@Ravi:不,不像“动态生命期”那样是“动态的”,因为由alloca()分配的数组具有自动生命周期(即与本地变量相同)。但是,它们的大小是在运行时确定的。 – newacct 2009-11-05 06:26:56
不可以。静态分配给编译器许可,以进行各种假设,然后在编译过程中将其烘焙到程序中。
在这些假设是:
- 它是安全的把其他的数据阵列(不会离开你的成长空间)后,立即和
- ,该阵列开始在某个地址,然后成为程序的机器代码的一部分;你不能在某个地方分配一个新的数组(并使用它),因为不能更新地址的引用。
(好吧,引用可以进行更新,如果程序存储在RAM中,但是自修改方案在高度皱起了眉头,而不是动态数组肯定比较麻烦。)
- 1. 我可以增加JPanel的大小吗?
- 2. 可分配性和静态大小的数组的性能
- 3. 我们可以增加数据类型的大小吗?
- 4. 如何创建静态分配的动态大小的数组?
- 5. 静态数组,可变大小允许?
- 6. 如何动态增加数组大小
- 7. 动态增加/减少数组大小
- 8. 我们可以增加html中的字体大小吗?
- 9. 我需要增加可能的最大数组大小
- 10. 动态分配大小的数组0
- 11. 我可以为一个变量分配一个静态类吗?
- 12. Java增加数组大小
- 13. 动态数组大小分配
- 14. 静态大小的组合
- 15. SWT - 我可以根据图纸大小增大和缩小我的画布吗?
- 16. 我们可以动态地为C中的静态变量分配内存吗?
- 17. 我可以将renderscript内存分配放入循环中以处理一系列可变大小的数组吗?
- 18. 更改静态数组的大小
- 19. 正确大小的静态数组
- 20. 我可以用rx.js观察数组的增加吗?
- 21. 有人可以帮我增加一个数组的长度吗?
- 22. 为什么分配heightmapResolution会增加我的地形的大小?
- 23. 我们可以将TextContext.TestDeploymentDir值分配给静态类数据成员吗?
- 24. 可以用kmalloc()分配的最大大小取决于free_area []的大小吗?
- 25. 我可以用Cython创建一个静态C数组吗?
- 26. 我可以在Cython中静态键入h5file数组吗?
- 27. 可以增加MTD设备的逻辑擦除块大小吗?
- 28. 我可以根据增量大小限制rsync传输的大小吗?
- 29. 动态增加JTable大小
- 30. 我可以增加设计中使用的授权令牌的大小吗?
在什么语言你在工作?这将使所有的差异。 – 2009-11-05 04:35:06
什么语言?了解这将有助于您理解除静态分配数组的定义之外的原因。 – strager 2009-11-05 04:35:12
这听起来像是一个糟糕的(或诡计)作业问题。 – 2009-11-05 04:37:47