|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
29.10.2009, 20:01 | #1 |
Новичок
Джуниор
Регистрация: 29.10.2009
Сообщений: 6
|
Массивы - some problems...
Собственно, вот код моей программы(писано на С):
Код:
1. После того как я собственноручно введу элементы массива, программа выдает "Run-Time Check Failure #2 - Stack around the variable 'a' was corrupted." Что это за зверь, и как с ним бороться? 2. В конце кода я поставил оператор, который должен, по идее, вывести на экран значение этого самого наименьшего по модулю элемента. Но, я упорно боролся, так и не разобрался, почему этот элемент равен "-92559...", когда я ввожу вполне адекватные числа от одного до десяти. Буду благодарен Последний раз редактировалось Ned_01; 29.10.2009 в 20:06. |
29.10.2009, 20:07 | #2 |
Участник клуба
Регистрация: 15.07.2008
Сообщений: 1,933
|
В таком виде у меня скомпилировалось и работает. Изменения в комментариях:
Код:
Последний раз редактировалось netrino; 29.10.2009 в 20:16. |
29.10.2009, 20:36 | #3 |
Новичок
Джуниор
Регистрация: 29.10.2009
Сообщений: 6
|
Ошибка со стэком исправилась, а вот на экран всё равно выводится значение "-925..." я даже полностью скопировал исправленный код
Последний раз редактировалось Ned_01; 29.10.2009 в 20:38. |
29.10.2009, 20:48 | #4 |
Участник клуба
Регистрация: 15.07.2008
Сообщений: 1,933
|
Странно, у меня именно этот код отлично работает. Вы значение n не меняли? Если объявить массив как
Код:
|
29.10.2009, 21:00 | #5 |
Новичок
Джуниор
Регистрация: 29.10.2009
Сообщений: 6
|
Код:
зато появилась еще: "There is no source code available for the current location." Возможно, дело в моем компиляторе или даже компьютере.. |
29.10.2009, 21:21 | #6 |
Участник клуба
Регистрация: 15.07.2008
Сообщений: 1,933
|
И какой же у Вас компилятор?
"Run-Time Check Failure #2 - Stack around the variable 'a' was corrupted." говорит о выходе за пределы массива, расположенного в стеке, то есть о выходе за пределы массива a. "There is no source code available for the current location." это сообщение появляется во время отладки, когда в ходе отладки Вы пытаетесь войти в функцию, которая не описана в Вашем проекте или во включаемых файлах. Попробуйте запустить программу не в режиме отладки, а просто. Перед циклом попробуйте вставить fflush(stdin) и переписать scanf("%lf",&a[i]); как scanf(" %lf",&a[i]);(с пробелом перед %) |
29.10.2009, 21:34 | #7 |
Новичок
Джуниор
Регистрация: 29.10.2009
Сообщений: 6
|
Использую Visual Studio 2008.
Насчет "Run-Time": я понял, что говорится про выход за пределы массива. И, насколько я знаю, нумерация в си в массивах начинается с 0. Т.е., Код:
Код:
|
29.10.2009, 21:38 | #8 |
Участник клуба
Регистрация: 15.07.2008
Сообщений: 1,933
|
Странно, я проверил на VS2008 и VS2010 beta 2, всё работает отлично. Попробуйте пересоздать проект и запустить в нём.
|
29.10.2009, 22:24 | #9 |
Новичок
Джуниор
Регистрация: 29.10.2009
Сообщений: 6
|
Программа запускается и моментально же закрывается.
|
29.10.2009, 22:30 | #10 |
Участник клуба
Регистрация: 15.07.2008
Сообщений: 1,933
|
мда... выложите архив проекта.
Ещё можете попробовать использовать безопасный вариант scanf - scanf_s, вызов тот же. и замените getch() на _getch() |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Даны одномерные массивы А и В. Сформировать массивы, состоящие из элемент | LyaLya | Помощь студентам | 15 | 20.12.2009 14:12 |
массивы | ShadowCat | Помощь студентам | 3 | 02.11.2009 19:14 |
массивы | Еля | Общие вопросы C/C++ | 2 | 10.09.2009 20:13 |
Массивы | Snord | Общие вопросы Delphi | 2 | 12.04.2008 13:45 |