首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

c++中的堆内存储器

2013-02-17 
c++中的堆内存class People{char* name;}People( char * str ){namestr;}如上构造函数中一定要为name分配

c++中的堆内存
class People
{
    char* name;
}

People( char * str )
{
    name=str;
}


如上构造函数中一定要为name分配储存空间吗?? name和str不是指向堆中同一块区域吗? 
如: char* str="要加薪" ;

c++ plus 怎么说不行 c++
[解决办法]
不是不行,只是不好。会导致多个对象指向同一块内存,存隐患。
[解决办法]
name = "aaa",这个是成立的,不过仅仅是复制了一个地址交给了name而已,而且还是个常量区的地址,若你要是试图通过name修改字符串,就等着程序崩溃吧。
[解决办法]
char *str = "test"
这样定义字符串传入是可以的,但是你在实际项目中 又有几个是定义在字符常量区的;
当你传入一个不是在常量区的字符指针就知道这样是不行的了。不可能你写一个类以后用到的时候都是传入的常量区的参数吧!!  很不安全的

热点排行