2012-05-18 36 views
0

Calloc是否分配返回连续的内存位置?如果是的话,如果它不可用,它会做什么?Calloc - 内存分配

+0

你是指单次调用calloc,还是多次调用calloc,返回指向先前分配的块结束的指针? – Jens

回答

3

Calloc allocate是否返回连续的内存位置?

是的。

如果它不可用,它会做什么?

返回NULL

参见C99标准的第7.20.3.1节。


1.就C程序而言。在虚拟内存系统中,所使用的底层物理内存可能不是连续的。

+0

那么,calloc返回的所有内存blk都是连续存储的? – zahreelay

+1

@zahreelay:如果每个分配中的内存不是连续的,那么它就不会很有用。 –

+0

不,如果你指的是calloc的不同调用,那是不能保证的。 – Jens

1

是的,C标准保证calloc返回的指针是NULL或指向连续内存块。