搜索
编程论坛
→
开发语言
→
C++论坛
→
『 C++教室 』
→ 字符指针小问题
标题:
字符指针小问题
只看楼主
zheng3912930
等 级:
新手上路
帖 子:15
专家分:2
注 册:2011-11-10
结帖率:
66.67%
楼主
已结贴
√
问题点数:20 回复次数:2
字符指针小问题
char * str="nihao!";
这个不是动态分配的吧!
这样有没有危险!会不会覆盖已有的空间!
char * str=new char[7];
str="nihao!" 和上一个有什么区别?
搜索更多相关主题的帖子:
空间
nihao
动态
2012-06-25 10:52
rjsp
等 级:
版主
威 望:
507
帖 子:8890
专家分:53117
注 册:2011-1-18
第
2
楼
得分:10
char * str=new char[7];
str="nihao!"
???
2012-06-25 12:03
jiantiewen
等 级:
职业侠客
威 望:
2
帖 子:61
专家分:307
注 册:2012-6-22
第
3
楼
得分:10
char * str="nihao!";
用str这个字符型指针变量存储"nihao!"这个字符串常量的起始地址。系统分配能容纳char*的内存空间(32位系统用4字节)供编程者指定字符或字符串的位置。
char * str=new char[7];
是把指针str指定为系统专门分配出来的7字节长度的内存开始位置。
str="nihao!";
又把str的值改为这字符串常量的起始地址。跟第一种结果相同,但是却要系统无辜地浪费了7个字节的内存空间(是完全没有用到的)。
就像是,你花了钱去买了个新房子(new char[7]),得到国家(系统)批下来的房产证(char* str)。
但是你却硬是要把房产证上地址这一项的内容(str的值)改成你住着的房子的地址("nihao!"这字符串常量的起始地址)。
这种事情你说正常不正常?
2012-06-26 01:18
3
1/1页
1
参与讨论请移步原网站贴子:
https://bbs.bccn.net/thread-372181-1-1.html
关于我们
|
广告合作
|
编程中国
|
清除Cookies
|
TOP
|
手机版
编程中国
版权所有,并保留所有权利。
Powered by
Discuz
, Processed in 0.889787 second(s), 8 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved