[an error occurred while processing this directive]
|
Замучен тупостью компиляторов С. Едва не пал в неравной борьбе.
Ну представьте.
Написал я программке такую вот цепочку:
pnt1=new float[128];
pnt2=new float[128];
....
pntn=new float[128];
pnt1-pntn объявлены указателями на float, предварительно им всем присвоен null, а проверки на выделение памяти я опустил.
Потом отработали свое эти pnt, возжелал я их удалить.
Вот так:
if(pnt1) {delete pnt1;pnt1=NULL;}
if(pnt2) {delete pnt1;pnt1=NULL;}
...
if(pntn) {delete pnt1;pnt1=NULL;}
И вся эта цепь, с выделением, удалением, в некотором цикле работает.
И вот, вспомнить страшно, после опред. числа проходов цикла память у меня вся поизрасходовалась.
Ну описался я, в удалении всегда pnt1 использовалось, что же казнить за это?
Что компилятор сам не мог допетрить, что если написано if(pnt2), то и удаляться должен pnt2, а вовсе не pnt1?
И мне спокойнее и его реже запускать бы пришлось.
Ведь 3 дня ошибку искал.
E-mail: info@telesys.ru