社区
C++ 语言
帖子详情
new[] 和new()的区别?
SeanHwang
2008-11-25 07:47:41
*p = new char[100];
*p = new char(100);
这两句到底有什么区别呢?
...全文
167
8
打赏
收藏
new[] 和new()的区别?
*p = new char[100]; *p = new char(100); 这两句到底有什么区别呢?
复制链接
扫一扫
分享
举报
写回复
配置赞助广告
用AI写文章
8 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
jackzhhuang
2008-11-25
打赏
举报
回复
一个调用:
template<class T>
T* operator new(size_t);
一个调用:
template<class T>
T* operator new[](size_t, size_t);
kingteng
2008-11-25
打赏
举报
回复
第一个是分配了100个char空间,但是不初始化,只是原始空间
第二个是分配了一个char空间,并且初始化为100
lann64
2008-11-25
打赏
举报
回复
new []和new根本就是两个不同的操作。
要是重载操作符的话也是分开做两个不同的操作符。
可以理解为是两个名字相像、功能相近的两个完全不同的函数。
一定要,也完全可以吧他们重载成完全不一样的函数。他们之间没有依存和调用关系。
SimonFu
2008-11-25
打赏
举报
回复
第一个是分配char数组
第二个是使用构造函数分配一个char对象
天空海阔66
2008-11-25
打赏
举报
回复
*p = new char[100]; //申请100个字符空间,没有初始化这些空间.[]是数组符号.
*p = new char(100); //申请1个字符空间,用100来初始化这个空间.()"函数符号"可以看做是调用char的构造函数.
霍大脚
2008-11-25
打赏
举报
回复
第一个是申请一个100大小的字符数组空间就
第二个是申请一个char大小的空间,并把100赋给他
BaihowFF
2008-11-25
打赏
举报
回复
顺便在说下...
C++中[]叫做取下标...用new的时候这东西就是管分配多少的...[100]就是100个...
而()这样的小括号..一般用于初始化...所以构造函数调用的时候...初始化内容习惯就写在括号里...当然...声明的时候用等于也是一样的...看不习惯而已...
BaihowFF
2008-11-25
打赏
举报
回复
第一个是给100个char空间...
第二个是给一个空间...赋值为100...也就是d
C++ 语言
65,214
社区成员
250,514
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章