On Thu, May 27, 2010 at 08:48:06PM -0700, Bill Broadley wrote: > On 05/27/2010 08:35 PM, Chanoch (Ken) Bloom wrote: > > On Thu, 2010-05-27 at 22:08 -0400, Hai Yi wrote: > >> hi there: > >> > >> can anyone look at these two small c++ snippets to see what's wrong > >> with them? I was interviewed with them... > > Out of curiosity, where? (feel free to not answer) > > >> 1. > >> A* createA(){ return new A();} > >> void fun(){createA();} > >> What's wrong with the above code? > > > > It leaks memory.
Yeah, you know why the interviewer asked that? Either one of his employees or _he_ made the error and it started dropping memory on the floor, not to mention losing access to previously allocated variables. It looks like a nice tool for a little bit of nastiness though. Overwrite a variable, then later creatively drop into that memory location and get your stash back! > > Is A defined? Is it that A is allocated but the return value isn't > checked (for an allocation failure)? Or that the pointer isn't used? Or > that it leaks? -- Brian Lavender http://www.brie.com/brian/ "There are two ways of constructing a software design. One way is to make it so simple that there are obviously no deficiencies. And the other way is to make it so complicated that there are no obvious deficiencies." Professor C. A. R. Hoare The 1980 Turing award lecture _______________________________________________ vox-tech mailing list vox-tech@lists.lugod.org http://lists.lugod.org/mailman/listinfo/vox-tech