Условие:
Что будет выведено на экран в результате компиляции и выполнения следующего кода на ЭВМ с архитектурой x8664 (длина машинного слова =8 байт)?
#include <iostream>
#include <cstddef>
#include <cstdint>
struct MyCls
{
std::uint32_t x, y;
std::int32_t *p;
MyCls (std::sizet n): x(0), y(0), p (new std::int32t [n]) \{\}
~MyCls 0 \{delete [] p;\}
\};
int main ()
\{
MyCls c(42);
std::cout <<sizeof(c);
return 0;
\}
176
16
3
Сообщение об ошибке времени компиляции
Решение:
Для того чтобы понять, что будет выведено на экран в результате компиляции и выполнения данного кода, давайте проанализируем структуру MyCls и её размеры. 1. Структура MyCls содержит три члена: - std::uint32_t x - 4 байта - std::uint32_t y - 4 байта - std::int32t *p - указатель, который на архитектуре x8664 занимает 8 байт 2. Теп...
![Что будет выведено на экран в результате компиляции и выполнения следующего кода на ЭВМ с архитектурой x8664 (длина машинного слова =8 байт)? MyCls (std::sizet n): x(0), y(0), p (new std::int32t [n]) {} ~MyCls 0 {delete [] p;} }; int main () { MyCls](/public/images/library/external/library-detail-hero-book.png)