Я ведь нигде ничего по умолчанию не создаю.
он указывает на массив: type arr[N];
static_array
. Т.к. в моей esp32s3 всего 8мб озу и нет виртуальной памяти
Вот как раз бы понять что на что указывает
int *ptr = (int*) (matrix + XMAX);
for (int i = 0; i < XMAX; i++) {
matrix[i] = ptr + YMAX * i;
}
matrix
-- это указатели на строки массива, это пространство зарезервировано при вычислении указателя ptr
, который указывает на данные первой строки. Именно об этом я и написал, что вам нужен не только код, но и рутоничат, а ещё стрим, из которого рутоничат будет получать данные.
Поэтому и поставил "сложный"....
надо знать проблему, а не искать ошибку в коде
Вам не нужно всё моё приложение
Вы либо сталкивались с такой прблемой и знаете ответ, Либо не сталкивались и не знаете ответ.
Вот код, воспроизводящий проблему.
Понятнее стало? Нет, не стало.
Если реализовать классическую ISA ARM или популярную на cегодня ISA Risc-V, то переделать придетcя в основном компиляторы, планировщики задач и обработчики прерываний. Т.е. компилятор и низкоуровневое ПО.
За 15 лет прогаммирования с применением setjmp/longjmp сталкивался только один раз.
Пока не нашёл никаких других обходных путей.
Павел Соколов, потому что конструктор должен сконструировать все поля объекта до начала выполнения своего тела.
Не вижу, как это можно было бы сделать не прибегая к фокусам типа "зарезервировать память правильно выровненным массивом байтов и реализовать конструкторы/деструкторы используя placement new/явные вызовы деструкторов элементов массива", но я уже не настоящий С++-сварщик. Посмотрим, что ещё предложат.