关于malloc函数

一、malloc能分配物理内存吗?

malloc返回的地址只是逻辑地址空间的一个地址值。在使用该地址的时候才由操作系统映射到物理内存去访问内存数据。不存在malloc直接返回物理内存的说法。即使用VirtualAlloc分配的虚拟内存,提交以后还是照样要分配物理内存。
知道使用的地址是逻辑空间地址,使用该地址的时候由操作系统做映射到物理内存的动作就可以了。

二、malloc能够分配的最大的内存

不确定

与使用的OS,编译器有关

有的是最大的空闲物理内存,有的是最大的空闲物理内存+虚拟内存

三、可以使用void指针释放内存吗?

可以
#include 
#include 

int main(void)
{
	void* ptr;

	ptr=malloc(100*sizeof(char));
	free(ptr);

	system("pause");
	return 0;
}


你可能感兴趣的:(C/C++)