malloc&calloc

Kat*_*och 4 c linux

按照:

calloc(20, sizeof(int))
malloc(20 * sizeof(int))
Run Code Online (Sandbox Code Playgroud)

这将为20个整数分配内存.

malloc()calloc()分配虚拟或物理连续的空间?

unw*_*ind 9

C没有说机器有物理和虚拟地址空间.

所有你知道的是你得到指针,并且你可以按语言的运算符定义的连续方式索引/取消引用它们.

如果这样做需要硬件将虚拟地址重新映射到物理地址,或者向回复地址位置的人发送电子邮件,则是实现定义的.


Mat*_*ieu 5

空间是否物理连续取决于您正在开发的平台,MMU和OS ....

实际上它总是连续的.

无论是calloc还是malloc都不会有所作为.