今天qq某大侠问我,为啥他的代码会crash
char* pdata = new char(14245);
::memset( pdata, 0, 14245 );
我马上运行代码,结果果真是Access Violent。
之后试过malloc都没有问题
随机我把这段代码删除,过了几分钟后,我按照记忆,重新写下代码
char* pdata = new char[14245];
::memset( pdata, 0, 14245 );
结果不crash了。细细一看
。
。
。
为啥要调用char的构造函数传入14245的参数呢?这样只能new出来1个字节,但是memset又写了14245个字节,不挂才有鬼了
之后问过很多人,基本都没看出来,可见这个写法极其骗人