По определенным malloc
, да, у вас столько памяти, сколько вы просили, и не более: -)
На самом деле, это может дать вам немного больше (многие реализации дадут вам кратное 16 или 32 байта), но в стандартном C нет способа определить, сколько. Использование большего, чем вы просили, является неопределенным поведением, независимо от того, какой тип заполнения выполняется.
В некоторых системах есть функция mallinfo
, которую можно вызывать для получения статистики по общей области памяти, если вы хотите узнать, сколько памяти было выделено. Вы можете посмотреть на это, но, опять же, это не стандарт.