279 / 156 / 52
Регистрация: 30.06.2011
Сообщений: 1,712

Почему тут UB?

28.02.2020, 08:59. Показов 3170. Ответов 40
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Приветствую всех. Есть такой код:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <stdio.h>
#include <stdlib.h>
 
typedef struct {
  int a; int b;
} X;
 
int main()
{
  X* x = (X*)malloc(sizeof(X));
  if (!x) return 1;
 
  x->a = 111;
  x->b = 222;
 
  printf("x->a = %d\n", x->a);
  printf("x->a = %d\n", x->b);
 
  free(x);
  return 0;
}
Говорят, что он корректен в С, но в С++ ведет к неопределенному поведению. Почему он корректен в С понятно, но объясните, почему в С++ это UB?
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
28.02.2020, 08:59
Ответы с готовыми решениями:

Почему тут ошибка
Всем привет! Не могу понять, почему возникает ошибка: class Vector { int values; public Vector(int nDim) {

Почему тут разный вывод?
#include &lt;stdio.h&gt; #include &lt;stdlib.h&gt; int main() { for(int i = 0, j = 20; i &lt; 20, j &gt; 10; i++, j--) { printf(&quot;%d...

Можете объяснить, почему тут NPE
Добрый день В программировании новичок. Программа, которая должна вывести после сортировки массива индекс элементов до...

40
6772 / 4565 / 1844
Регистрация: 07.05.2019
Сообщений: 13,726
29.02.2020, 15:19
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от DrOffset Посмотреть сообщение
oleg-m1973, то, что это не согласуется с твоими представлениями, не означает, что это "просёр".
Это источник проблем с производительностью, которые легко сделать и трудно найти причину (сейчас только в рантайме). Думаю, это плохо по любым представлениям.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
29.02.2020, 15:19

Почему тут нужен амперсанд (&) ?
Вопрос по foreach , а точнее, по амперсанду (&amp;) в foreach: Есть цикл: $nums = ; foreach($nums as $v) $v = $v * 10; ...

Почему не записывает в textbox? В чем тут ошибка?
private void button3_Click(object sender, EventArgs e) { string strSQL; using (cn = new...

Не могу понять почему не работает и где тут ошибка
Доброго всем времени суток! Нужна ваша помощь скачал с инета форму которая определяет сколько людей онлайн на сайте установил по...

Гибридное видео в ноутах... почему у многих тут проблемы???
Железо: ноут Samsung NP-R730 (JB02RU) это если верить заводской наклейке по инфе но офсайте в этой конкретной конфигурации встоит только...

Где тут ошибка и почему, ну ни как не могу разобраться
/* Программа: Параметры vararg и перегрузка. */ class VarArgs3 { static void vaTest(int ... v) { ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
41
Ответ Создать тему
Опции темы

Новые блоги и статьи
сукцессия 29. Переход от одних деревьев на другие делать более или менее вероятностным?
anaschu 12.07.2026
Насколько смена типов микоризы — исключительное событие в двухвековой сукцессии? Оценка вероятности в пространстве параметров В текущей версии модели успешно реализован ключевой механизм. . .
сукцессия 27. Думаю, как переделывать уже написанную статью с планами на сукцессию.
anaschu 12.07.2026
Анализ соответствия модели требованиям Реализованные компоненты: Механизм закисления почвы через протонную помпу Конкуренция между типами микориз pH как триггер сукцессии C/ P соотношение. . .
Сукцессия 26. Мат модель создана.
anaschu 12.07.2026
Модель смены растительных сукцессий посредством управления грибами работает внутри небольшой ячейки почвы, восстанавливающейся после пожара, где ненадолго бывшее царство хвойных снова захватили. . .
Решил проблему с ошибкой пагинации сообщений с сервера на алгоритме обхода дерева "Эстафета хвоста".
Hrethgir 12.07.2026
Проблема была в том, что удалялась именно новая кнопка, а не старая. Ни один ИИ не обнаружил это, а сам я смог только когда с работой стало попроще и когда заставил работать будущее автономное. . .
сукцессия 25. Хронология ошибок
anaschu 12.07.2026
# От 50-тонного гриба до устойчивого леса: хроника ошибок при построении модели вековой сукцессии микоризы ## О чём эта статья В процессе построения ОДУ-модели (система дифференциальных. . .
сукцессия 24. Промежуточное общее описание модели
anaschu 12.07.2026
Хендофф: модель АМ→ЭКМ сукцессии микоризы (ризосфера, 50 лет) Содержание проекта Симуляция вековой (50 лет) экологической сукцессии в почве леса Основные участники: АМ-гриб, ЭКМ-гриб,. . .
сукцессия 23. Более физиологичная физиология, более экологичная экология, более диффурные диффуры.
anaschu 12.07.2026
Что реально нашли и починили за эти 5 часов Правило Линдемана (КПД конверсии сахара в тело, kEff) — раньше 100% полученного углерода шло прямо в биомассу гриба; теперь только kEff=0. 5 (после. . .
сукцессия 22. От артефактов к физиологии: калибровка агентной модели грибной сукцессии для воспроизведения сезонной динамики и pH-плато
anaschu 11.07.2026
Аннотация В данной работе представлена калибровка агентной модели динамики грибных сообществ (fungal-succession), направленная на устранение нефизичных артефактов (коллапс биомассы, мгновенное. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru