众所周知,使用new调用相应类型构造函数的内存分配和使用malloc分配的内存不会。但是kmalloc呢?
我正在尝试开发一些系统调用,我需要将内存分配给下面的结构。
struct mailbox{
unsigned long existing_messages;
unsigned long mxid;
struct message *msg;
struct message *last_node;
mailbox(){
existing_messages = 0;
mxid = 0;
msg = NULL;
last_node = NULL;
}
};
如果我使用kmalloc分配内存,它会在分配时调用struct mailbox的构造函数吗?如果不是,除了显式调用构造函数之外,调用构造函数的合理可能方法是什么。内核中的内存分配是否有任何与new等效的功能?