Я использую библиотеку комплексных номеров с несколькими значениями (zkcm) и хочу сравнить некоторые результаты, используя complex<double>
.Многоуровневая библиотека zkcm и sizeof()
В какой-то момент я пытаюсь дважды проверить память переменных с помощью sizeof()
, но я получаю тот же ответ (32) независимо от того, насколько большой объем памяти я выделяю переменным; то есть следующий фрагмент печатает 32 независимо от того, что я использую в zkcm_set_default_prec()
:
zkcm_set_default_prec(128);
zkcm_class z;
cout << sizeof(z) << endl;
Есть еще один способ, чем sizeof()
, чтобы получить размер памяти переменной?
sizeof возвращает размер самого объекта. Если этот объект имеет данные, выделенные через new() или malloc(), тогда sizeof не учитывает выделенные данные, а только размер указателя на выделенные данные. Точно так же, как sizeof (char *) возвращает размер самого указателя, а не размер выделенных данных. – gnasher729