char buf [50];char * ptr;
scanf ("% s", buf);ptr = (char *) malloc (sizeof (buf) +1);
// И как узнать, что динамическое размещение выполнено правильно?я хочу узнать размер памяти, на который указывает ptr
Стандартная функция malloc не предоставляет эту информацию.Это непростой способ узнать размер объекта, на который указывает указатель, если вы не используете пользовательские распределители или не добавляете некоторые метаданные для хранения информации о размере вместе с объектами кучи (когда вызывается malloc, память выделяется из компоновки кучи) путем вставкифункция malloc.Есть решения для предоставления этой информации.Существует идея, называемая толстым указателем, и можно найти несколько библиотек жирных указателей, например Cello .В этой работе можно найти улучшенную версию указателя жира.