Сообщение об ошибке мне довольно ясно: вы пытаетесь получить доступ к несуществующему элементу массива. Я подозреваю, что значение -534829264 является либо мусором, когда вы используете неинициализированную переменную для идентификации элемента в массиве, либо результатом целочисленного арифметического переполнения. В любом случае вы должны включить флаг компиляции, чтобы принудительно проверить границы массива и запустить некоторые тесты. Я думаю, что флаг для компилятора Intel будет -CB
, но проверьте документацию.
Что касается того, почему программа, по-видимому, успешно работает в отладчике, я мало чем могу помочь, но, возможно, отладчик накладывает некоторые значения по умолчанию на переменные, которых нет в самой системе времени выполнения. Или какой-то другой фактор целиком виноват.
РЕДАКТИРОВАТЬ:
Разве система времени выполнения не сообщает вам, какая строка кода вызывает проблему? Еще несколько вещей, чтобы попытаться диагностировать проблему. Используйте компилятор, чтобы предупредить вас о
- использование переменных до их инициализации;
- целочисленное арифметическое переполнение (не уверен, что компилятор это заметит?);
- любые принудительные преобразования из одного типа в другой и из одного вида в другой внутри одного и того же типа.
Кроме того, убедитесь, что целочисленный размер по умолчанию соответствует вашим ожиданиям и, что более важно, тому, что остальная часть кода ожидает от него.
person
High Performance Mark
schedule
17.05.2010