|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
30.05.2018, 09:31 | #1 |
Пользователь
Регистрация: 11.01.2018
Сообщений: 49
|
Помогите с двумя теоретическими вопросами
Буквально два вопроса, можно ответить просто да/нет. Дело в том, что препод засыпал, а я не уверен прав ли он.
Структура в языке С представляет собой непрерывный участок памяти, размер которого равен произведению наибольшего размера и количество полей? (да/нет) Структура в языке С не может содержать поля типа "структура"? (да/нет) Сидел проверял размер структуры, ну действительно ведь произведению равен размер. Может, в Паскале размер структуры равен сумме всех полей, и из-за этого препод забыл? На первый я ответил "Да", на второй "Нет". Как правильно? |
30.05.2018, 10:15 | #2 | |
Старожил
Регистрация: 15.02.2010
Сообщений: 15,726
|
Засыпал... Ха-ха...
Цитата:
Смотрим https://ideone.com/5wkKe6 три поля, большее размером 4. По вашему размер структуры 12, а программа упорно выдает 8... Смотрим https://ideone.com/I9nHqr Структура есть? - есть. Поле в ней типа структура есть? - есть. Компилится и работает? - да. Вывод - ... Последний раз редактировалось p51x; 30.05.2018 в 10:21. |
|
30.05.2018, 10:19 | #3 |
Программист
Участник клуба
Регистрация: 23.06.2009
Сообщений: 1,772
|
Что Вы там проверяли - непонятно
Код:
Код:
|
30.05.2018, 10:27 | #4 | |
Пользователь
Регистрация: 11.01.2018
Сообщений: 49
|
Цитата:
|
|
30.05.2018, 10:34 | #5 |
Старожил
Регистрация: 15.02.2010
Сообщений: 15,726
|
1. По секрету - у вас С++. Это немного другое.
2. Уж на первом курсе при изучении программирования отмазываться отговорками типа нам не рассказали глупо. Прочитайте в документации, что это за типы. 3. И? Какие выводы вы сделали из своего теста? Что показали результаты? |
30.05.2018, 10:36 | #6 | |
Пользователь
Регистрация: 11.01.2018
Сообщений: 49
|
Цитата:
|
|
30.05.2018, 10:38 | #7 |
Пользователь
Регистрация: 11.01.2018
Сообщений: 49
|
Что в С++ размер структуры равен произведению наибольшего размера поля и количества полей. И что структуру может содержать поле "структура".
|
30.05.2018, 10:43 | #8 |
Старожил
Регистрация: 15.02.2010
Сообщений: 15,726
|
1 + 1 + 1 + 4 = 7 и +1 от компилятора для выравнивания
Вам уже два примера привели, что это не так. Попераставляйте поля в своем примере, заведите больше переменных с разным размером. |
30.05.2018, 10:55 | #9 |
Пользователь
Регистрация: 11.01.2018
Сообщений: 49
|
Попереставлял, попроверял... Моя жизнь никогда не станет прежней, я свято верил, что размер равен произведению, а оказывается компилятор просто добавляет к сумме значения, чтобы результат был кратен максимальному полю...
|
30.05.2018, 10:56 | #10 |
Пользователь
Регистрация: 11.01.2018
Сообщений: 49
|
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Помогите с вопросами | alhon | Помощь студентам | 2 | 14.01.2016 22:06 |
Помогите с вопросами пожалуйста | Silensir111 | Помощь студентам | 0 | 20.11.2015 19:39 |
Помогите с вопросами | R@MZ[E]$ | Помощь студентам | 6 | 21.05.2009 17:51 |
Помогите с вопросами... | R@MZ[E]$ | Паскаль, Turbo Pascal, PascalABC.NET | 5 | 21.05.2009 09:40 |