LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
12
返回列表 发新帖
楼主: jhuangjiahua

int num[n]; ? 用变量定义变量?

[复制链接]
发表于 2004-7-5 19:48:53 | 显示全部楼层
最初由 kj501 发表
如果要用在函数中使用动态分配,每次调用函数都要进行一次动态内存分配。这个造成效率的下降。你自己可以作一试验看看。

错!
因为是在STack中分内存
所以这是可以,也是很容易就可以实现的
只要把原有的sp=sp+CONST换为sp=sp+n就可以了,
这只做很小的改进就可以了
+++++++
错误在于,函数调用并不分配内存,更准的说是没有动态分配内存,
因为它在原有已分配的Stack中分配内存。
另只要有局部变量,这种内存分配是不能避锡的。但它并不增加机器的负担
 楼主| 发表于 2004-7-5 23:34:37 | 显示全部楼层
谢谢.
发表于 2004-7-6 09:13:05 | 显示全部楼层
最初由 folklore 发表
错!
因为是在STack中分内存
所以这是可以,也是很容易就可以实现的
只要把原有的sp=sp+CONST换为sp=sp+n就可以了,
这只做很小的改进就可以了
+++++++
错误在于,函数调用并不分配内存,更准的说是没有动态分配内存,
因为它在原有已分配的Stack中分配内存。
另只要有局部变量,这种内存分配是不能避锡的。但它并不增加机器的负担

倒,看来下次要先搞清楚变长数组的实现机制才回贴。我还以为是在堆上分配的内存呢,看了汇编代码才知道不是这么回事。
 楼主| 发表于 2004-7-10 20:46:06 | 显示全部楼层
[SIZE=2" style="font-size:100"]哦c
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表