【发布时间】:2013-04-30 02:40:15
【问题描述】:
我将在不使用任何 new 运算符的情况下分配一个新对象。我找到了两种方法:
第一个正在使用额外的缓冲区(需要跟踪):
char buffer[BUFFER_SIZE];
char *pos = buffer;
Object *myObject; = (Object*)pos;
pos += OBJECT_SIZE;
第二种是直接使用内存栈(esp):
Object *myObject;
__asm sub esp, OBJECT_SIZE //make room for a variable
__asm mov dword ptr[myObject], esp
我没有看到任何错误,但是它们之间有什么不同?哪种方法更好、更快、更安全?
【问题讨论】:
-
任何你不能以标准 C++ 方式来做的理由,例如对象我的对象; ?
标签: performance visual-c++ memory-management assembly