| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1586 人关注过本帖
标题:想问个新手问题 - 关于字元运用
只看楼主 加入收藏
wube
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:23
帖 子:1820
专家分:3681
注 册:2011-3-24
结帖率:97.66%
收藏
已结贴  问题点数:13 回复次数:35 
想问个新手问题 - 关于字元运用
一直不懂char A[256]和char *A之间有何不同 ?
我知道char A[256]是在内存开一个256空间的位置放资料,最多只能放256个字.
而char *A是由电脑(或是编译器)选定一个内存起始位置,存放未知长度的字元资料.
但是我不知道什么情况用哪种比较适当?有什么比较明确的标准吗?(假设字串长度不是问题)

原因之一是,最近常遇到原本申请的内存位址,其中存放的资料,之后却被之后申请的内存资料覆盖到
(理论上不可能发生,实际上常遇到),导致程式当掉,虽然可以解决,但是还是想知道原因.

所以我猜测是不是跟char A[256]和char *A之间有关系.

抱歉没什么分数可给了...
搜索更多相关主题的帖子: 资料 空间 编译器 
2015-01-19 14:30
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:3 
他们俩没啥太大的区别  字面上来看,前者是固定好的内存块  而后者没有分配内存  需要单独分配

DO IT YOURSELF !
2015-01-19 14:33
wube
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:23
帖 子:1820
专家分:3681
注 册:2011-3-24
收藏
得分:0 
所以是否有可能因为char *A长度未定,可能导致在程式运行时加入的资料覆盖到原本char A[256]内的资料?

不要選我當版主
2015-01-19 14:39
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:0 
以下是引用wube在2015-1-19 14:39:20的发言:

所以是否有可能因为char *A长度未定,可能导致在程式运行时加入的资料覆盖到原本char A[256]内的资料?


不存在这个可能,你的程序只能操作该程序自己所属的内存空间,而分配内存只有成功和失败之说 ,没有覆盖的说法

DO IT YOURSELF !
2015-01-19 14:42
wube
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:23
帖 子:1820
专家分:3681
注 册:2011-3-24
收藏
得分:0 
那char A[256]和char *A和char *A = new char[256]又有什么不同?

不要選我當版主
2015-01-19 14:45
wube
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:23
帖 子:1820
专家分:3681
注 册:2011-3-24
收藏
得分:0 
又有
char *A = (char*)malloc(sizeof(char)*256);
我都快被搞混了

不要選我當版主
2015-01-19 14:47
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:0 
那char A[256]  c语法声明一个字符数组
和char *A      c语法声明一个字符串指针
char *A = new char[256]  这也是声明一个字符数组 不过是c++语法

DO IT YOURSELF !
2015-01-19 14:48
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:0 
以下是引用wube在2015-1-19 14:47:23的发言:

又有
char *A = (char*)malloc(sizeof(char)*256);
我都快被搞混了


这是从内存堆上申请256个char的长度的空间 如成功 则继续  如失败 则无法继续

DO IT YOURSELF !
2015-01-19 14:49
wube
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:23
帖 子:1820
专家分:3681
注 册:2011-3-24
收藏
得分:0 
先谢谢版主的回答,不过我是想问什么时候用哪种比较好,
除了它们是动态配置和静态配置的区别外,
还有什么是编程时选用的标准吗?

不要選我當版主
2015-01-19 14:53
执笔画江山
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:3
帖 子:265
专家分:1010
注 册:2015-1-13
收藏
得分:3 
涨姿势了

授人以鱼,不如授人以渔
2015-01-19 15:12
快速回复:想问个新手问题 - 关于字元运用
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017512 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved