- 
	
- Попробую, когда (и если) проц оживет. Я подозреваю, что причиной
всему - сдыхание МК, но надеюсь, что это не так. Затереться до дыр
вроде еще не должен был. - Argon(12.03.2022 14:58)
			
- Проц ожил. Без наследования - все то же самое. Т.е. по какой-то
причине, переключение контекста scmRTOS прекращает работать.
Видимо, придется в недрах оси лазить, блин... - Argon(12.03.2022 16:24)
					
- А если отказаться от динамического выделения памяти? Просто
использовать статический объект в глобальном пространстве имён? - evgeniy1294(12.03.2022 18:38)
							
- Тогда работает, но это не то, чего хотелось бы. Что-то явно не то с
распределением памяти, а что - не могу понять. - Argon(12.03.2022 18:52)
									
- Вот, уже теплее. Нужно изучить принцип работы аллокатора - должна
быть реализация в стандартной библиотеке системы. Возможно, что-то
есть в документации на ОС. - evgeniy1294(12.03.2022 20:20)
											
- Если я верно понял о чем речь, то в ОС нет какого-то специального
аллокатора - все объекты/процессы размещаются статически на этапе
компиляции. Стало быть проблема - в стеке?  Argon(580 знак., 13.03.2022 18:20)
													
- У вас ошибки при использовании static. Попробую пояснить. В функции
instance() используется переменная doozer, которая объявлена static
относительно функции, а не класса. Объявите её внутри класса,
допустим в секции class Doozer { public: static Doozer* doozer; ...
}; А потом где-нибудь в .CPP: Doozer::doozer = nullptr; - Costic(13.03.2022 18:58)
															
- Я ведь написал, что не видится эта перменная, если ее объявить вне
функции instance(). Почему так - не знаю.  Argon(313 знак., 13.03.2022 19:07)
																	
- А нельзя ли в лоб обратиться в instance() { if (Doozer::doozer)
Doozer::doozer = new Doozer();??? 1) default конструктор очень
нужен? он же как-то хитро с инициализацией связан. 2)
Doozer::doozer = nullptr; надо бы объявить. - Costic(13.03.2022 19:38)
																			
- Неа, внутри instance() Doozer::doozer тоже не видится, если его
объявить вне instance().  Argon(377 знак., 13.03.2022 19:48)
																					
- Doozer::doozer = nullptr без этого линкер не соберёт. Определить в
любом исходнике, как глобальную переменную, например рядом с
main(). Я проверил на gcc (mingw) - всё компилируется. - Costic(13.03.2022 20:12)
																							
- Ну вот еще не хватало глобальную переменную заводить... Этот
указатель вообще не должен быть виден нигде кроме как внутри класса
Doozer. - Argon(13.03.2022 20:16)
																									
- Статические переменные-члены класса так и работают. Видимость
глобальная, доступ через ::. - Costic(13.03.2022 20:40)
																											
- я хотел сказать, что по идее она должна быть вообще в секции
private класса - Argon(13.03.2022 21:02)
																													
- который раз замечаю - программеры Си бодаются с целевой задачей, и
все вопросы соответствующие. а программисты Си++ бодаются с самим
языком, и практически никогда - с целевой задачей. - Mahagam(13.03.2022 22:01)
																															
- Золотые слова. - AndreasW(13.03.2022 22:10)
 - пасиб за комплимент, я на C++ вообще, можно сказать, впервые пишу ) - Argon(13.03.2022 22:04)
																																	
- это не комплимент, а как бы наоборот :-) - SciFi(13.03.2022 22:09)
																																			
- назвать "программистом C++" - это мегакомплимент )) - Argon(13.03.2022 22:25)
 
 
 - это не комплимент, а как бы наоборот :-) - SciFi(13.03.2022 22:09)
																																			
 
 
 - который раз замечаю - программеры Си бодаются с целевой задачей, и
все вопросы соответствующие. а программисты Си++ бодаются с самим
языком, и практически никогда - с целевой задачей. - Mahagam(13.03.2022 22:01)
																															
 
 - я хотел сказать, что по идее она должна быть вообще в секции
private класса - Argon(13.03.2022 21:02)
																													
 
 - Статические переменные-члены класса так и работают. Видимость
глобальная, доступ через ::. - Costic(13.03.2022 20:40)
																											
 
 - Ну вот еще не хватало глобальную переменную заводить... Этот
указатель вообще не должен быть виден нигде кроме как внутри класса
Doozer. - Argon(13.03.2022 20:16)
																									
 
 - Doozer::doozer = nullptr без этого линкер не соберёт. Определить в
любом исходнике, как глобальную переменную, например рядом с
main(). Я проверил на gcc (mingw) - всё компилируется. - Costic(13.03.2022 20:12)
																							
 
 - Неа, внутри instance() Doozer::doozer тоже не видится, если его
объявить вне instance().  Argon(377 знак., 13.03.2022 19:48)
																					
 
 - А нельзя ли в лоб обратиться в instance() { if (Doozer::doozer)
Doozer::doozer = new Doozer();??? 1) default конструктор очень
нужен? он же как-то хитро с инициализацией связан. 2)
Doozer::doozer = nullptr; надо бы объявить. - Costic(13.03.2022 19:38)
																			
 
 - Я ведь написал, что не видится эта перменная, если ее объявить вне
функции instance(). Почему так - не знаю.  Argon(313 знак., 13.03.2022 19:07)
																	
 
 - У вас ошибки при использовании static. Попробую пояснить. В функции
instance() используется переменная doozer, которая объявлена static
относительно функции, а не класса. Объявите её внутри класса,
допустим в секции class Doozer { public: static Doozer* doozer; ...
}; А потом где-нибудь в .CPP: Doozer::doozer = nullptr; - Costic(13.03.2022 18:58)
															
 
 - Если я верно понял о чем речь, то в ОС нет какого-то специального
аллокатора - все объекты/процессы размещаются статически на этапе
компиляции. Стало быть проблема - в стеке?  Argon(580 знак., 13.03.2022 18:20)
													
 
 - Вот, уже теплее. Нужно изучить принцип работы аллокатора - должна
быть реализация в стандартной библиотеке системы. Возможно, что-то
есть в документации на ОС. - evgeniy1294(12.03.2022 20:20)
											
 
 - Тогда работает, но это не то, чего хотелось бы. Что-то явно не то с
распределением памяти, а что - не могу понять. - Argon(12.03.2022 18:52)
									
 
 - А если отказаться от динамического выделения памяти? Просто
использовать статический объект в глобальном пространстве имён? - evgeniy1294(12.03.2022 18:38)
							
 
 - Проц ожил. Без наследования - все то же самое. Т.е. по какой-то
причине, переключение контекста scmRTOS прекращает работать.
Видимо, придется в недрах оси лазить, блин... - Argon(12.03.2022 16:24)
					
 
 - Попробую, когда (и если) проц оживет. Я подозреваю, что причиной
всему - сдыхание МК, но надеюсь, что это не так. Затереться до дыр
вроде еще не должен был. - Argon(12.03.2022 14:58)