1

私はインタビューでこの質問をされました。malloc が割り当てることができる最小サイズと、malloc が割り当てることができる最大サイズはどれくらいですか。

私は最小サイズの場合1 byteに答えました。彼がそれが正しいと仮定して答えたと私が言ったとき、メモリチャンクがmalloc割り当てることができる最大サイズを教えてください(あなたがそれをしようとするmallocといつか失敗します)、あなた4GBはRAMを持っていると思いますコードを書いてください単純なプログラムのヒープ セグメントのサイズを見つけるには、スタック セグメントのサイズを見つけるためのコードを書くか、私に書いてください。

誰でもこのソリューションで私を助けることができますか?

割り当てることができる最小サイズは1 byte? 私は char が最もメモリを必要としないと考えて答えました。

4

2 に答える 2

0

はい、malloc(size_t)割り当て可能な最小サイズが保証されてい(size_t) 1ます。

0要求されたバイトが返されるかどうかは、実装次第NULLです。

C 標準 (WG14/N1256) 7.20.3:

要求されたスペースのサイズがゼロの場合、動作は実装定義です。null ポインターが返されるか、サイズがゼロ以外の値であるかのように動作します。ただし、返されたポインターはオブジェクトへのアクセスには使用されません。

于 2013-09-01T12:57:09.703 に答える