今日、EFNet C++ Wiki のヒープ破損に関する記事で、2 つのコードを見つけました。
void this_is_bad() /* You wouldn't believe how often this kind of code can be found */
{
char *p = new char[5]; /* spend some cycles in the memory manager */
/* do some stuff with p */
delete[] p; /* spend some more cycles, and create an opportunity for a leak */
}
別の方法:
void this_is_good()
{
/* Avoid allocation of small temporary objects on the heap*/
char p[5]; /* Use the stack instead */
/* do some stuff */
}
コードの最初の部分が適切と見なされない理由を理解するのに誰か助けてもらえますか?