Size: a a a

IT KPI C/C++ ХВ (не UB)

2020 October 06

AB

Aleksey Belkevich in IT KPI C/C++ ХВ (не UB)
Про них же речь
источник

AB

Aleksey Belkevich in IT KPI C/C++ ХВ (не UB)
Те что объявляются явно статически n-мерными и используются в одном скопе с декларацией, там проблем нет
источник

ДЦ

Дмитро Цимбалюк... in IT KPI C/C++ ХВ (не UB)
в цикле память выделять
источник

AB

Aleksey Belkevich in IT KPI C/C++ ХВ (не UB)
Та не про выделение говорю, а про итоговую картинку в памяти
источник

ДЦ

Дмитро Цимбалюк... in IT KPI C/C++ ХВ (не UB)
ну, рандомно
источник

AB

Aleksey Belkevich in IT KPI C/C++ ХВ (не UB)
Правильно
источник

AB

Aleksey Belkevich in IT KPI C/C++ ХВ (не UB)
Теперь к сути проблемы
Если ты сделаешь н-мерный массив где-то на стеке скажем, то как ты и говорил он будет не фрагментирован
Со вторым сценарием определения на куче через двойной указатель выходит обратная ерунда
Но и там и там можно применять оператор [ ] [ ]
источник

AB

Aleksey Belkevich in IT KPI C/C++ ХВ (не UB)
Только вот приводить двумерный массив первого вида к двойному указателю из второго случая нельзя
источник

AB

Aleksey Belkevich in IT KPI C/C++ ХВ (не UB)
Бо компилятор неправильные смещения насчитает
источник

AB

Aleksey Belkevich in IT KPI C/C++ ХВ (не UB)
Собственно в этом весь си
источник

AB

Aleksey Belkevich in IT KPI C/C++ ХВ (не UB)
Классический подход на плюсах будет вложенные контейнеры в какой-то обёртке или под тайпдефом
источник

AB

Aleksey Belkevich in IT KPI C/C++ ХВ (не UB)
Aleksey Belkevich
Только вот приводить двумерный массив первого вида к двойному указателю из второго случая нельзя
И мало кто будет делать себе дырку в голове чтобы транслировать такие структуры
источник

ДЦ

Дмитро Цимбалюк... in IT KPI C/C++ ХВ (не UB)
выделять память управляемо можно только в ассемблере же?
источник

AB

Aleksey Belkevich in IT KPI C/C++ ХВ (не UB)
Память на куче выделяется сисколом, на глобальном сегменте определяется линковщиком статически, а вот стек как раз можно крутить прямо машинными командами не делая прерывания на систему
источник

ДЦ

Дмитро Цимбалюк... in IT KPI C/C++ ХВ (не UB)
по поводу bitset
это можно создавать таким образом машинные команды прямо в высокоуровневом языке?
источник

RN

Ruslan Neshta in IT KPI C/C++ ХВ (не UB)
машинные команды ты не можешь физически создать, они зашиваются на уровне схемотехники
источник

JC

Julian =) Coffee in IT KPI C/C++ ХВ (не UB)
Дмитро Цимбалюк
по поводу bitset
это можно создавать таким образом машинные команды прямо в высокоуровневом языке?
Ну ты можешь генерировать и давать на запуск
источник

JC

Julian =) Coffee in IT KPI C/C++ ХВ (не UB)
Правда не на всех системах
источник

RN

Ruslan Neshta in IT KPI C/C++ ХВ (не UB)
Julian =) Coffee
Ну ты можешь генерировать и давать на запуск
тоесть компилировать?)
источник

JC

Julian =) Coffee in IT KPI C/C++ ХВ (не UB)
Ну да
источник