Я не программист, но пришлось взяться за вещи на c++; уровень у меня нулевой, прошу это учесть при объяснениях :-) Дело такое: если я имею что-то вроде: if (foo) { float *bar = new float [runtime_N]; ... -> тут <-----------------------| } | | то | delete [] arr; | должно стоять там, правильно? -- | (в конце блока) Второй вопрос: если вышестоящий блок вызывается многократно, а deletом там и не пахло, то рано или поздно не останется памяти и программа упадет? (Догадываюсь, что да. Этот ли случай называется memory leak?) И третий: освобождается ли занятая память после завершения программы (если не был вызван delete), или при следующем запуске память все еще недоступна?