2012-05-18 47 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或指向連續內存塊。