QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 1142|回复: 3

请教:是节省内存还是函数栈?

[复制链接]
发表于 2005-12-27 09:53:25 | 显示全部楼层 |阅读模式
写一个函数的时候,因为在函数内定义了大约几十字节的const char。之所以在函数体内定义,主要是想节约内存,觉得只有每次进入函数的时候,才会申请该内存,函数结束后,该变量的内存即被释放。但主管说,要将其定义为全局的const char。因为他告诉我,要节约函数栈空间。(我们是给手机做程序)
请教大家,究竟函数栈有如此之小吗?到底该节约内存还是函数栈呢?
发表于 2005-12-27 10:22:53 | 显示全部楼层
你确定你用的是const char[]?你怎么定义的?

const char foo[N] = "......";
这样?那么还不如const char* foo = "......";呢……

搞不懂干啥要这样用const char[]????
回复

使用道具 举报

 楼主| 发表于 2005-12-27 10:40:38 | 显示全部楼层
是这样的,准确的说,我用的是const char[m][n],其中,m和n是固定的长度。
之所以没有用指针,因为我需要从一个字符串,换到下一个字符串,用指针只能加一个字节,而不是一个其中的字符串长度。

另外,即使我真的用const char[],在本质上不是和const char* 一样吗?
请教,他们还有什么特别的区别吗?
回复

使用道具 举报

发表于 2005-12-28 00:19:11 | 显示全部楼层
大虾,当然是直接定义const char* foo ="xxx" 拉.
不管你再那里定义,这一段const char都是占用数据段的空间的。你的程序一起动,这一块内存就被占用了阿。你直接用一个指针指向他,占用的内存最省.


const char[] 和 const char*最大的区别就是:
前者要多占一些内存空间.
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2024-11-2 22:34 , Processed in 0.050110 second(s), 16 queries .

© 2021 Powered by Discuz! X3.5.

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