我在"Understanding the linux kernel“中读到,当在用户空间调用malloc时,内核只在vm_area_t结构中添加一个线性区域,而不是在内存中分配空间,这被称为ostponing分配,并且在线性区域中分配的空间只能在页面中断发生时使用。但是,如果在页面中断期间没有页面可以被分配,那么当用户调用malloc时,不是被欺骗了吗?
在程序中分配适当大小的内存时,我遇到了问题。我所做的工作如下:当我这样做时,我认为它给堆添加了太多的内存,因为它是以void*而不是字节的单位分配内存的。我如何告诉它,我希望大小(任何)是指任何字节,而不是任何其他单位?我曾见过其他人将事物转换为字符,这样编译器就可以以字节为单位来获取大小。如果size of (无符号int)是4个字节,但是我使用的类型是void *,那么编译器会不会破坏一个void *大小的4倍而不是4个字节呢?