Борьба с утечками ресурсов и переполняющимися буферами

       

исходный текст программы, использующий динамические стековые массивы


Естественно, о вызове stack_free

программист может забыть (и ведь наверняка забудет!), поэтому лучше выделять память так, чтобы при выходе из функции она освобождалась автоматически.

Ниже приведен исходный текст макроса auto_alloc, который именно так и работает:

#define auto_alloc(p,n) {__asm{add n,20h};\

                                  __asm{mov eax,esp};\

                                  __asm{sub esp,n};\

                                  __asm{mov p,esp};\

                                  __asm{push 20h};\

                                  __asm{push eax};\

                                  __asm{mov eax,p};\

                                  __asm{push eax};\

                                  __asm{call memcpy};\

                                  __asm{add esp,0Ch};\

                                  __asm{add p,20h};}



Содержание раздела