|
网站首页
|
业界新闻
|
小组
|
威客
|
人才
|
下载频道
|
博客
|
代码贴
|
在线编程
|
编程论坛
|
登录
注册
短消息
我发表的主题
我参与的主题
我收藏的贴子
我上传的附件
我下过的附件
编辑个人资料
我的博客
用户控制面板
搜索
道具
恢复默认风格
碧海青天
秋意盎然
棕红预览
粉色回忆
蓝雅绿
紫色淡雅
青青河草
e点小镇
橘子红了
红红夜思
水晶紫色
雪花飘飘
新年快乐
风格
短消息
论坛展区
帮助
编程论坛
→
开发语言
→
『 C语言论坛 』
→ 想问个新手问题 - 关于字元运用
我的收件箱(0)
欢迎加入我们,一同切磋技术
用户名:
密 码:
共有
1586
人关注过本帖
标题:
想问个新手问题 - 关于字元运用
只看楼主
加入收藏
wp231957
来 自:神界
等 级:
贵宾
威 望:
423
帖 子:13688
专家分:53332
注 册:2012-10-18
第
11
楼
收藏
得分:0
以下是引用
wube
在2015-1-19 14:53:51的发言:
先谢谢版主的回答,不过我是想问什么时候用哪种比较好,
除了它们是动态配置和静态配置的区别外,
还有什么是编程时选用的标准吗?
这个好像也没啥标准,我觉得小规模分配内存
(不至于导致堆栈崩溃的) 就静态分配吧
有些场合不知道该分配多少合适 就动态分配吧
DO IT YOURSELF !
2015-01-19 15:41
举报帖子
使用道具
赠送鲜花
wube
等 级:
贵宾
威 望:
23
帖 子:1820
专家分:3681
注 册:2011-3-24
第
12
楼
收藏
得分:0
个人经验是在副程式中使用阵列时,用char A[256]比较危险,常常崩溃。
改用char *A = char[256]就会变正常了。这也是不思不解很神奇的状况之一。
不要選我當版主
2015-01-19 16:03
举报帖子
使用道具
赠送鲜花
wp231957
来 自:神界
等 级:
贵宾
威 望:
423
帖 子:13688
专家分:53332
注 册:2012-10-18
第
13
楼
收藏
得分:0
以下是引用
wube
在2015-1-19 16:03:07的发言:
个人经验是在副程式中使用阵列时,用char A[256]比较危险,常常崩溃。
改用char *A = char[256]就会变正常了。这也是不思不解很神奇的状况之一。
这2个完全是2个概念
第一个
char A[256] 是声明了一个字符数组
(一个字符串的概念)
第二个 char *A = char[256] 是声明了一个字符串数组 ( 多了一个串字
实际上是多个字符串的概念 )
完全不一样的2种声明
DO IT YOURSELF !
2015-01-19 16:06
举报帖子
使用道具
赠送鲜花
wube
等 级:
贵宾
威 望:
23
帖 子:1820
专家分:3681
注 册:2011-3-24
第
14
楼
收藏
得分:0
不太懂?多个字符串不就是二维了吗?
char **A = new char*[256];
for(int i=0;i<256;i++)
*A = new char[256];
不要選我當版主
2015-01-19 16:16
举报帖子
使用道具
赠送鲜花
wp231957
来 自:神界
等 级:
贵宾
威 望:
423
帖 子:13688
专家分:53332
注 册:2012-10-18
第
15
楼
收藏
得分:0
嗯,今天状态不好
又看错了
是 char *A[] =.....
代表字符串数组
不好意思了
DO IT YOURSELF !
2015-01-19 16:20
举报帖子
使用道具
赠送鲜花
lu3664198
等 级:
论坛游侠
威 望:
1
帖 子:55
专家分:185
注 册:2014-11-16
第
16
楼
收藏
得分:3
....为什么我只能看到楼主一个人在自问自答
wwwwwww...~~;
本人为大一新生,说的不好不要拍我 ~ ( ̄~ ̄) ;
2015-01-19 17:11
举报帖子
使用道具
赠送鲜花
lu3664198
等 级:
论坛游侠
威 望:
1
帖 子:55
专家分:185
注 册:2014-11-16
第
17
楼
收藏
得分:0
回复 16楼 lu3664198
原来点了只看楼主...
wwwwwww...~~;
本人为大一新生,说的不好不要拍我 ~ ( ̄~ ̄) ;
2015-01-19 17:12
举报帖子
使用道具
赠送鲜花
TonyDeng
等 级:
贵宾
威 望:
304
帖 子:25859
专家分:48889
注 册:2011-6-22
第
18
楼
收藏
得分:3
以下是引用
wube
在2015-1-19 14:30:52的发言:
一直不懂char A[256]和char *A之间有何不同 ?
我知道char A[256]是在内存开一个256空间的位置放资料,最多只能放256个字.
而char *A是由电脑(或是编译器)选定一个内存起始位置,存放未知长度的字元资料.
但是我不知道什么情况用哪种比较适当?有什么比较明确的标准吗?(假设字串长度不是问题)
原因之一是,最近常遇到原本申请的内存位址,其中存放的资料,之后却被之后申请的内存资料覆盖到
(理论上不可能发生,实际上常遇到),导致程式当掉,虽然可以解决,但是还是想知道原因.
所以我猜测是不是跟char A[256]和char *A之间有关系.
抱歉没什么分数可给了...
是指針亂指造成的覆蓋。
授人以渔,不授人以鱼。
2015-01-19 21:40
举报帖子
使用道具
赠送鲜花
TonyDeng
等 级:
贵宾
威 望:
304
帖 子:25859
专家分:48889
注 册:2011-6-22
第
19
楼
收藏
得分:0
C的千年困擾,就是指針。
授人以渔,不授人以鱼。
2015-01-19 22:02
举报帖子
使用道具
赠送鲜花
biu_biu_biu
等 级:
论坛游民
帖 子:5
专家分:10
注 册:2015-1-19
第
20
楼
收藏
得分:3
在C语言中 char A[256]表示一个可以赋256个字符的数组 同时在定义char类型时 一个char 占用一个字节 所以A[256]占有256字节 而 char *A代表的是 指向一个字符地址的指针变量
在给*A赋值前 A随机指向一个地址 但是在赋值后 A就代表变量的地址值 *A代表该地址说代表的具体值
2015-01-19 22:21
举报帖子
使用道具
赠送鲜花
36
2/4页
1
2
3
4
快速回复:
想问个新手问题 - 关于字元运用
数据加载中...
关于我们
|
广告合作
|
编程中国
|
清除Cookies
|
TOP
|
手机版
编程中国
版权所有,并保留所有权利。
Powered by
Discuz
, Processed in 0.099574 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved