V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  dayoushen  ›  全部回复第 4 页 / 共 4 页
回复总数  78
1  2  3  4  
2017-06-28 13:58:47 +08:00
回复了 scinart 创建的主题 C 求 c++大神帮忙看下这段代码为啥不崩
@xss 因为 centos 的 g++没有 emplace_back,只有 push_back,所以改了一下,发现是看错了。这段代码鲁棒性太差,首先构造函数中 p 应先初始化为 NULL 再用 new int 复制, 析构中则是 if(p!=NULL) { delete p; p = NULL;}这样无论使用者怎么析构都不会面临奔溃的情况,不然生或死由编译器决定。
2017-06-27 21:02:03 +08:00
回复了 scinart 创建的主题 C 求 c++大神帮忙看下这段代码为啥不崩
@dayoushen 通过打印 VS2010 中的地址,发现 VS 的 vector 实现既然不做隐式转换,具体代码如下:
class Holder
{
int* p;
public:
Holder(int x) {
p=new int();
cout<<"Holder() : "<<&p<<endl;
*p=x;
}
Holder(const Holder &aH)
{
cout<<"copy construct Holder()"<<endl;
p= new int();
*p=*(aH.p);
}
~Holder() {
cout<<"~Holder() : "<<&p<<endl;
delete p;
}
};
int main(int argc, char *argv[])
{
std::vector<Holder> v;
v.reserve(3);
v.emplace_back(1);
v.emplace_back(2);
v.emplace_back(3);
v[1].~Holder();
return 0;
}
输出:
Holder() : 00533928
Holder() : 0053392C
Holder() : 00533930
~Holder() : 0053392C
~Holder() : 00533928
~Holder() : 0053392C
2017-06-27 20:53:53 +08:00
回复了 scinart 创建的主题 C 求 c++大神帮忙看下这段代码为啥不崩
我的测试工具是 VS2010,Centos 的 4.8.5,运行结果是 VS 会弹框报错,注释掉 v[1].~Holder();就 OK ;然而 Centos 中即使注释掉 v[1].~Holder()也会 double free 报错,因为 v.emplace_back(2);构造是隐式构造,即浅拷贝,需要再添加深拷贝才能正常运行:
#include <iostream>
#include <vector>
using namespace std;
class Holder
{
int* p;
public:
Holder(int x) {
cout<<"Holder() : "<<x<<endl;
p=new int();
*p=x;
}
Holder(const Holder &aH)
{
cout<<"copy construct Holder()"<<endl;
p= new int();
*p=*(aH.p);
}
~Holder() {
cout<<"~Holder() : "<<*p<<endl;
//if(p != NULL)
delete p;
}

};
int main(int argc, char *argv[])
{
vector<Holder> v;
v.reserve(3);
v.push_back(1);
v.push_back(2);
v.push_back(3);
return 0;
}
2017-04-01 16:24:46 +08:00
回复了 QcloudCommunity 创建的主题 推广 愚人节,程序员是怎么整蛊朋友的?
//trick.bat
@echo off
set millisecond=%time:~9,2%
echo %time%
set second=%time:~6,2%
set min=%time:~3,2%
set hrs=%time:~0,2%

set /a millisecond+=53
set /a second=second+millisecond/100
set /a millisecond%%=100

set /a min=min+second/60
set /a second%%=60

set /a hrs=hrs+min/60
set /a min%%=60
set /a hrs%%=24

set HourMax=24
if %hrs% lss %HourMax% (
echo %hrs%:%HourMax%
echo %hrs%:%min%:%second%.%millisecond%
time %hrs%:%min%:%second%.%millisecond%
)

//trick.vbs
set ws=createobject("wscript.shell")
do
ws.run "copy.bat",0
wscript.sleep 1000
loop


=============================
有一天同事的电脑时间变快了,大家看着他中午 11 点半吃饭去了。
2017-03-07 22:03:50 +08:00
回复了 kuaiabcde 创建的主题 C c/c++ 控制台音乐播放器
ffmpeg 的 ffplay + filename
2017-01-18 13:53:15 +08:00
回复了 softempire 创建的主题 问与答 怎么样加密一个要发送给别人的文件?
对用户硬件授权,采集用户电脑的网卡,硬盘序列号, cpu 序列号,主板等信息,加密后发给他。
2016-12-12 19:32:08 +08:00
回复了 m939594960 创建的主题 电影 《你的名字。》这部电影真的好看么?
个人觉得: 1.你没到那个感悟的年纪; 2.你没有找到一起看这部剧的人
2016-12-11 09:47:28 +08:00
回复了 pimin 创建的主题 随想 马上 30 岁了,还想谈一场恋爱
我也有类似的经历,上周初恋还来这个城市找我,我们一起逛街看电影,但像以前一样我们没拉手,只有离别时的拥抱。我今年 26 ,从小学 5 年级 12 岁开始认识她,她在我大二的时候结婚,现在小孩 3 岁。
2016-07-20 14:31:39 +08:00
回复了 zetaoouyang 创建的主题 生活 请教问题:如果下雨 40 天,我们该是反思什么尼?
@asan2006 我遭,抓到一个历史是地理老师教的(地球仪上看,企鹅和北极熊也可以是远房亲戚),中华五千年和一千多年也没什么区别
创造出来得到认同就是才华;得到爱情就是两个人的孤独
2016-07-10 11:35:20 +08:00
回复了 chengfu 创建的主题 程序员 关于声形码的思考
简单粗暴做一个音频长度+md5 码到二维码的映射就可实现基本功能
2016-07-10 11:32:41 +08:00
回复了 chengfu 创建的主题 程序员 关于声形码的思考
这个是音频指纹吧,之前调研过 shazam 和 midomi 音乐识别就是基于此技术(类似网易云音乐的听歌识曲),网易公开课 TED 好像有个演讲,大致想法是提取音频的指纹,然后存在在一个大的网络服务器上,把现实生活中一张图片和音频指纹绑定,当你上传的图片和服务器上图片相似就会解码得到原始音频。说到底还是信息压缩还原的问题。
跑步,周末出去走走;想想女神在别人的怀抱...
2016-04-12 09:29:02 +08:00
回复了 JustAtech 创建的主题 职场话题 今天面试太老实了,输给以个妹纸了。。
胸大让你无脑!!!
1  2  3  4  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2787 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 34ms · UTC 09:58 · PVG 17:58 · LAX 01:58 · JFK 04:58
Developed with CodeLauncher
♥ Do have faith in what you're doing.