170 похожих чатов

То есть у динам массива sizeof будет тоже 8?

18 ответов

2 просмотра

size of динамического массива получить вообще невозможно, sizeof - операция компилятора, только во времени компиляции выполняется, а динамический массив (или другой объект) существует только во время выполнения программы

Ilya Zviagin
size of динамического массива получить вообще нево...

Ну по факту можно просто надо брать от типа * на размер

'Егор 'Зорин
Ну по факту можно просто надо брать от типа * на р...

Это не динамический массив, и размер дин. массива таким образом не получить. Невозможно

'Егор 'Зорин
А это чо https://godbolt.org/z/rYh14YKvb

Так size ты где взял ? Вот в этом и дело...

'Егор 'Зорин
ввёл из stdin

Ну, сотри эту переменную после выделения памяти, и попробуй снова получить размер массива.

Ilya Zviagin
Ну, сотри эту переменную после выделения памяти, и...

А зачем ограничивать себя всякими условностями, если можно получать адекватно размер?

Ilya Zviagin
Ну, сотри эту переменную после выделения памяти, и...

да хоть метод класса можно сделать чтоб получать размер template < typename T> size_t f() { return this->size * sizeof(T); } ?

'Егор 'Зорин
А это чо https://godbolt.org/z/rYh14YKvb

В твоем случае вот такой код даст неверный размер массива: ssize_t size = 0; std::cin >> size; int *arr = new int[size]; std::cout << "Size arr: " << sizeof(arr) << std::endl; А вот такой даст верный: constexpr ssize_t size = 10; int arr[size]; std::cout << "Size arr: " << sizeof(arr) << std::endl;

d7d1cd
В твоем случае вот такой код даст неверный размер ...

всмысле не верный если size = 5 то 5 * int = размер всех элементов массива

'Егор 'Зорин
да хоть метод класса можно сделать чтоб получать р...

Ну ты не понимаешь, о чём я. Я тебе говорю, что узнать размер выделенного динамически объекта невозможно, его нужно ХРАНИТЬ от момента выделения. А ты мне рассказываешь, как устроить класс для того, чтобы это хранить. Я знаю, что нужно хранить. Я тебе не об этом писал. А о том, что размер динамически выделенного объекта узнать после его создания невозможно.

Похожие вопросы

Обсуждают сегодня

У меня такой вопрос. Вот мне нужно сделать бинарный файл с ассемблер кода: [bits 32] [org 0x7c00] start: cli mov esp, stack_space call _main hlt section .tex...
Dmytro Parkhomenko
26
@FAssembler не знаешь, fasm поддерживает thumb?
Александр Белокопытов
46
Вот сравним знания, которые требуются, чтобы знать все эти условности С компилятора, и знания, которые требуются чтобы писать программы на ассемблере. Что проще?
КТ315
23
Фуух, победила раскраску. Ну почти) Кому что посчитать? )))
Катерина Свиридова
18
Наивный вопрос, а можно в лазарус как-то оптом сохранить состояние всех элементов интерфейса приложения перед его закрытием, например?
Кокошник наголо
13
model small .stack 256 .data arr db 16 dup(?) mes db 10, 13, "Enter 16 numbers: $" mes1 db " $" mes2 db 10, 13, "Sorted: $" mes3 db 10, 13, "$" i db 0 .code ...
Ыиу
42
Ребят нубский вопрос, но я в поиске чата не нашел ничего об этом. Установил я clang, Code-Blocks ( который с wingw). Пытаюсь запустить свой хелловорлд, а мне пишет fatal error...
Дима Копышов
15
При чем здесь DLL?
Marek Kotovsky
40
Чатик, как решать такую проблему: OOM Killer убивает систему быстрее чем в той вызовется GC. Если убрать OOM Killer, то GC успевает вызваться и память очищается. Лучше вообще...
Lama Lover
5
Снова этот оффтоп про С... В чате С не говорят столько про ассемблер, сколько в чате по ассемблеру говорят про С. Не стыдно?
КТ315
45
Карта сайта