Даже если я пишу это заявление,Есть ли способ вычислить размер заостренного вектора через sizeof()?
char *test= new char[35];
SizeOf (тест) всегда будет возвращать 4 (или другой номер в зависимости от системы), а не 35. Я полагаю, что это происходит потому, что размер указателя является строго физический «указывающий объект», а не объем памяти, зарезервированный для этого указателя. Правильно ли это?
Кроме того, есть ли способ получить объем памяти, зарезервированный для определенного указателя, используя sizeof()?
Одним словом: Нету. –
Да, это правильно, и нет, нет способа. Вы должны помнить, что вы выделили. Также (обязательно): используйте 'std :: vector' или' std :: string'. – Wintermute
Да. Нет. 'Sizeof' - это свойство времени компиляции. Объем выделенной памяти - это время выполнения. Более того, в некоторых случаях даже реализация C++ может не иметь доступа к этой информации после распределения. –