Описание тега memory-layout
2
ответа
Структура памяти программ в linux
Я немного запутался в том, как программа выглядит в памяти, мои профессора сказали мне, что стек и куча растут навстречу друг другу, так как стек находится по более низкому адресу памяти. Первое, что беспокоило меня с этим изображением, это то, что …
14 июл '13 в 00:37
2
ответа
Есть ли прагма для того, чтобы не заботиться о макете структуры / класса? Если нет, то почему?
Есть разные pragmas для управления макетом структуры / класса, например pragma pack, Но, насколько я знаю, нет pragma за то, что он сказал: "Мне нет дела до макета. Он внутренний, код не полагается на него. Переупорядочивайте его для лучшей производ…
16 окт '14 в 15:36
4
ответа
Что происходит с виртуальным базовым классом при наследовании в многоуровневом наследовании?
Играя с наследованием, мне довелось попробовать это: class A { int i; }; class B : virtual public A { int j; }; class C : public B { int k; }; int main() { std::cout<<sizeof(C)/sizeof(int); return 0; } Который дал мне выход 6 В то время как сл…
08 дек '12 в 10:54
3
ответа
C++ Не виртуальная переменная члена класса макет памяти?
У меня есть не виртуальный шаблон класса A как показано ниже, и я делаю следующее #include <iostream> // my class template template<typename T> class A { public: T x; T y; T z; // bunch of other non-virtual member functions including con…
17 июн '17 в 14:55
1
ответ
Инициализировать структуру из данных в Swift 3
У меня есть Struct названный MyContiguousStruct чья память не имеет отступов. struct MyContiguousStruct { let ivar1: UInt8 let ivar2: UInt8 let ivar3: UInt16 let ivar4: UInt16 } Мой инициализатор работает (отлично) так: init?(data: Data) { guard dat…
18 апр '17 в 16:44
1
ответ
Можем ли мы реализовать список стилей C++ в Java?
В Java arrayList "хранит" ссылки на объекты, а не на фактические данные объекта. Мне было интересно, можем ли мы реализовать arrayList в Java, который может содержать данные объекта непосредственно вместо ссылок. Можно ли использовать Java Unsafe Cl…
12 авг '13 в 22:14
1
ответ
Что происходит в этом фрагменте относительно представления n в pc[i]
Я понятия не имею, что происходит. Вместо uint8_t я бы предположил, что нам нужно привести к указателю типа 1 байт, например char или bool, чтобы добиться такого поведения. Я полагаю, что обратный характер связан с порядком байтов? РЕДАКТИРОВАТЬ: Я …
17 июл '18 в 18:32
2
ответа
Получение "parent" `std::tuple` из указателей на"children"
struct Apple { }; struct Banana { }; struct Peach { }; using FruitTuple = std::tuple<Apple, Banana, Peach>; template<typename TTuple, typename TItem> TTuple& getParentTuple(TItem* mItemPtr) { // <static assert that the tuple item …
29 мар '15 в 15:03
0
ответов
Определение структур в каркасе "Яблоки"
Я играю с Metal для iOS, делая небольшую игру. В одном из моих шейдеров ядра (в моих файлах.metal). Я определяю структуру для хранения некоторых метаданных для части игрового процесса. Структура выглядит так: struct ColorSetup { float4 color; float4…
15 фев '16 в 17:54
1
ответ
Класс, использующий виртуальное наследование, кажется, позволяет конструктору базового класса перезаписывать члены другого базового класса.
Я недостаточно знаком с макетом памяти объектов, которые содержат виртуальные базы, чтобы понять, почему следующее выглядит неправильно скомпилированным как clang, так и gcc. Это академическое упражнение, поэтому, пожалуйста, извините за легкомыслие…
09 янв '19 в 03:35
2
ответа
Расположение памяти в Javascript - ориентированный на данные против объектно-ориентированного дизайна
Исходя из опыта C/C++, расположение объектов в памяти с точки зрения уменьшения потерь в кеше - это то, что особенно важно при работе на консолях. Проектирование, ориентированное на данные, часто предпочитается объектно-ориентированному проектирован…
30 июл '14 в 15:46
1
ответ
Как рассчитать время выполнения и максимальное использование памяти данных в следующей программе c
Вот мой код Время выполнения памяти будет зависеть от ОС, но я не хочу, чтобы этот уровень. Просто хочу решить этот тип вопроса с базового уровня. include <studio.h> int calculate(int n); int number = 8; int main(){ int add; add = calculate(nu…
02 май '17 в 05:54
2
ответа
Выравнивание структуры C/C++
В c/ C++ (я предполагаю, что они одинаковы в этом отношении), если у меня есть следующее: struct S { T a; . . . } s; Гарантируется ли следующее? (void*)&s == (void*)&s.a; Или, другими словами, есть ли какая-либо гарантия, что перед первым уч…
24 июл '13 в 21:27
2
ответа
Выбор vptr в случае множественного наследования
Это похоже на многие предыдущие вопросы, но спрашивает что-то, на что я не смог найти ответ. #include <iostream> using namespace std; class Base1 { public: int b1_data; virtual void b1_fn() {cout << "I am b1\n";} }; class Base2 { public:…
18 мар '16 в 18:09
1
ответ
Выравнивание байтов объекта в xcode
Есть ли способ получить выравнивание байтов во время компиляции экземпляра класса в XCode? В Visual Studio есть флаг (/d1reportSingleClassLayoutXXX, где XXX - имя класса), который будет выгружать макет класса в окно вывода. Есть ли подобный флаг / ф…
14 мар '12 в 16:30
0
ответов
Как VBA/VB6 размещает память в классе, который реализует несколько интерфейсов?
Я изучаю расположение полей и указателей для экземпляра класса в VBA. Я предполагаю, что макет похож, если не то же самое для VB6. Я смог использовать различные фрагменты из этого потока VBForums, чтобы помочь найти открытых и закрытых членов класса…
20 июл '18 в 09:59
3
ответа
C++: расположение в памяти классов с использованием наследования
Я знаю, как данные будут упакованы не указано в стандарте. Я просто пытался получить представление о расположении памяти классов (особенно как dynamic_cast<void*> гарантирует возврат указателя на начало самого производного класса). Я не мог пр…
05 авг '14 в 11:29
2
ответа
Какова цель макетов совместимых типов?
Стандарт определяет, когда два типа совместимы с макетом. Но я нигде в стандарте не вижу, каковы будут последствия, когда два типа совместимы с макетом. Кажется, что совместимость с макетом - это определение, которое нигде не используется. Какова це…
29 окт '18 в 08:40
0
ответов
Выбор структуры памяти N-мерного массива
Я начал писать библиотеку для n-мерных векторов. Есть несколько конструктивных особенностей, которые я хотел бы поддержать в этой библиотеке: Расположение памяти непрерывно. Это связано с тем, что совместное использование памяти, отправка по сети и …
15 янв '14 в 08:52
1
ответ
Понимание макетов памяти переводчика (JVM/JS)
Я пытаюсь понять структуру памяти процесса на уровне операционной системы, и мы привыкли к этой диаграмме. Забудьте многопоточную часть диаграммы, но теперь для общих целей мы предполагаем, что блок "кода", показанный на диаграмме выше, является дво…
15 ноя '17 в 10:57