我有一些代码如下:
的main.cpp
/* create a global object to help manage malloc */
struct MemoryHelper {
void * (*malloc_fn)( size_t );
bool initialized;
} MemHelper = { malloc, true };
int main() { /* some stuff */ }
我很惊讶在dynamic initialization
期间MemHelper.initialized
的值为true
,但MemHelper.malloc_fn
的值为NULL
。
这似乎表明该对象是在static
和dynamic
初始化的混合下创建的。
这是一个合规模式 - 保证完全初始化或未初始化的对象吗?
有没有办法保证完全初始化?