为了账号安全,请及时绑定邮箱和手机立即绑定

内存申请str(100)与str[100]的区别

有一点疑问,生成100个char内型的内存

char *str=new str[100];

是不是可以理解成生成了一个可以存放100个char内型的数组,那既然是数组,strcpy(),是把"Hello Imooc"放在str数组的第几个位置?随机?

 要不就是生成100个长度的char内型

char *str=new str(100);

这样strcpy()我还能理解 释放内存为

 delete str; 
 str=NULL;


正在回答

1 回答

char *str=new char[100];的意思是在堆中申请100个char类型的内存;

char *str=new char(100);的意思是在堆中申请1个char类型的内存,初始化为100;这儿加一句new会调用默认初始化,char默认初始化为'',所以char *str=new char[100];这个就是100个''。

至于你的”是把"Hello Imooc"放在str数组的第几个位置?随机?”这个问题,是放在了数组的前面几个位置,随机就不可能了,效率也不允许这样做。

仅供参考,互相学习!

3 回复 有任何疑惑可以回复我~
#1

瞎掰呗 提问者

非常感谢!
2016-11-03 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
C++远征之离港篇
  • 参与学习       122700    人
  • 解答问题       474    个

C++扫清通往面向对象的最后一道障碍,将所有知识点融会贯通

进入课程

内存申请str(100)与str[100]的区别

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信