ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Понедельник
1 июля
70366
Grau (29.09.2006 15:37, просмотров: 2969)
new in Keil Salute! Попытался в Keil воспользоваться выделением памяти через new. Сделал простейший тестовый код, все настройки по умолчанию: main.cpp
class CTest{
public:
	void Func(){	}
};

int main(void) {
	while(1){
		int i = 0;
		++i;
		CTest* p (new CTest());
		p->Func();
		delete p;
	}
	return 0;
}
После запуска, еще до вызова main симулятор штука вылетает в SWI_Handler. В документации сказано, что вся инициализациия происходит в начале и исключение может быть при нехватки памяти, но куда она тогда делатсь? Да и переменная динамическая.. Стеки объявлены:
UND_Stack_Size  EQU     0x00000000
SVC_Stack_Size  EQU     0x00000008
ABT_Stack_Size  EQU     0x00000000
FIQ_Stack_Size  EQU     0x00000000
IRQ_Stack_Size  EQU     0x00000080
USR_Stack_Size  EQU     0x00000400
чип - LPC2148, так что рамы остается там еще много. Честно говоря - непонятно. Может кто пользовал оператор new, интересно было бы узнать, как правильно это делается для keil.. Best regards