1

重複の可能性:
割り当てられたブロックのサイズを照会する関数はありますか?
返されたポインタのみを使用してmallocのサイズを取得する

malloc関数を使用してint*xに渡されるバイト数をユーザーに指定させたとしましょう。整数に割り当てられた実際のバイト数を判別する方法はありますか?

4

1 に答える 1

3

ポータブルな方法はありません。言語標準はそれを行うための手段を提供していません。

malloc各実装は、もちろん、edメモリのサイズを追跡して正しく実行できるようにfreeする必要があるため、その情報を取得する手段を提供する場合があります。glibcmalloc.hには、プロトタイプがあります

size_t malloc_usable_size(void *);

これにより、渡されたポインタに割り当てられた使用可能なバイト数を取得できますが、多くの場合、malloc呼び出しで要求されたバイト数よりも大きくなります。他の実装は、その種の情報を取得するための他の手段を提供する場合があります。

于 2012-10-19T13:54:53.330 に答える