 
  
   
  
  interface IEvents{
        void onDeviceChange(int Int);
        void onDeviceAdd(int index);
    }
    class Obsr<T>{
        private ArrayList<T> list = new ArrayList<>();
        void callAll(){
            for (int i = 0; i<list.size();i++){
                list.get(i){метод который я вызываю через класс}
            }
        }
    }
    Obsr<IEvents> events = new Obsr<>();
//Наполняем массив
//....
events.onDeviceChange(1) // вызывается функция callAll и проходится по массиву методом onDeviceChange
//...
events.onDeviceAdd(1) // вызывается функция callAll и проходится по массиву методом onDeviceAdd 
  
   
  
  for (int i = 0; i < layers[k].nextSize; i++) { // я пытался очистить внутри массива весов размером самих весов 
           delete [] layers[k].weights[i];
 }
 delete [] layers[k].weights;for (int i = 0; i < layers[k].size; i++) { // просто size это количество нейронов а nextSize количество весов 
           delete [] layers[k].weights[i];
 }
 delete [] layers[k].weights; 
  
  void events(){
SDL_Event event;
SDL_PollEvent ( &event );
                switch ( event.type ) {
                        case SDL_MOUSEBUTTONDOWN:
                                break;
                        case SDL_MOUSEBUTTONUP:
                                {
                                        int x = event.button.x;
                                        int y = event.button.y;
                                        y = cf.screen_height - y;
                                        scene_event_click ( sc, x, y );
                                }
                                break;
                        case SDL_MOUSEMOTION:
                                {
                                        int x = event.motion.x;
                                        int y = event.motion.y;
                                        y = cf.screen_height - y;
                                        scene_event_over ( sc, x, y );
                                }
                                break;
                        default:
                                break;
                }
}const int fps = 60;
const int frameDelay = 1000 / fps;
while(run){
  events(); //Получаете события
  update();// Обновляете данные 
  render(); Рисуете
  Sleep(frameDelay);
}