如何分配内存 效率跟高,为什么

nearwu 2012-12-08 11:24:46
举个例子吧,第一种方法:先定义好变量, 循环初始化,赋值
char *buff= new char[100];
for(int i=0;i<10000;i++)
{
memset(buff,0x00,100)
memcpy(buff,data,100);
}
第二种方法:循环体内定义变量
for(int i=0;i<10000;i++)
{
char *buff= new char[100];
memset(buff,0x00,100);
memcpy(buff,data,100);
}
谢谢大家赐教
...全文
92 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
mymtom 2012-12-09
  • 打赏
  • 举报
回复
两种方法都很二。 memset(buff,0x00,100); /* 这句有什么用啊? */ memcpy(buff,data,100);
lgs666 2012-12-09
  • 打赏
  • 举报
回复
第一种减少了内存申请的次数,所以速度更快。
hznat 2012-12-09
  • 打赏
  • 举报
回复
引用 1 楼 steedhorse 的回复:
这两个完全不一样啊。第一种只分配了一次,第二种分配了10000次,那还有的比么? 相对于许多操作来说,动态内存分配都是个代价很高的动作。
++ 楼主想问的和举例是同一回事么?
晨星 2012-12-09
  • 打赏
  • 举报
回复
这两个完全不一样啊。第一种只分配了一次,第二种分配了10000次,那还有的比么? 相对于许多操作来说,动态内存分配都是个代价很高的动作。

64,282

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧