Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/25: Рейтинг темы: голосов - 25, средняя оценка - 4.80
0 / 0 / 1
Регистрация: 12.02.2013
Сообщений: 11

Переполнение массива

12.02.2013, 23:11. Показов 5269. Ответов 11
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день господа.
Столкнулся с очередной проблемой и не знаю как решить.
Где то в этой программе происходит переполнение массива A. Помогите найти мою ошибку, пожалуйста. :3

C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#include <iostream>
#include <math.h>
#include <conio.h>
 
using namespace std;
#define SIZE 3
#define x A[0]
#define y A[1]
#define a A[2]
#define b A[3]
 
int main( )
{
    float A[SIZE],d,c,result;
    cin >> A[0]; //x
    cin >> A[1]; //y
    cin >> A[2]; //a
    cin >> A[3]; //b
    if ((a == b) || (y <= 0)) 
    {
        printf("Incorrect data");
    } else {
        d = ((4 - x * x) * tan(2)) / (sqrt(a) - sqrt(b));
        c = sin(pow((1 + pow((log(y) / log(3)), 1/3)), 4));
    
        if (d*d + c*c <= 10) 
            result = d + c;
        else 
            result = sqrt(abs(d + c));
 
        printf("%0.3f\n", result);
    }
    _getch();
    return 0;
}
Кому интересно, что за формулы:
https://www.dropbox.com/s/741guqixgd4q2hl/123.jpg
https://www.dropbox.com/s/l3e0iwfyhkn2xoe/124.jpg
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
12.02.2013, 23:11
Ответы с готовыми решениями:

Переполнение массива
Товарищи, имею такой вопрос- есть у меня часть кода, которая отвечает за загрузку из интерне xml файла и созраняющая его в массив. Все...

Снова про переполнение массива
#include &lt;iostream&gt; using namespace std; int main () { char ar; cin &gt;&gt; ar; cout &lt;&lt; ar; return 0; ...

Не пойму где происходит переполнение массива
Я ошибся не переполнение, а выход за пределы #include &lt;iostream&gt; #include &lt;locale.h&gt; #include &lt;ctime&gt; using namespace std; ...

11
 Аватар для iama
1360 / 988 / 119
Регистрация: 30.07.2010
Сообщений: 5,297
12.02.2013, 23:18
Что такое "переполнение массива"?
1
0 / 0 / 1
Регистрация: 12.02.2013
Сообщений: 11
12.02.2013, 23:19  [ТС]
Run-Time Check Failure #2 - Stack around the variable 'A' was corrupted.
0
148 / 114 / 21
Регистрация: 15.01.2013
Сообщений: 266
12.02.2013, 23:21
Вы задаете SIZE 3, а у самого 4 элемента в массиве.
0
0 / 0 / 1
Регистрация: 12.02.2013
Сообщений: 11
12.02.2013, 23:23  [ТС]
Прошу прощения, был не совсем честен с вами.
У меня так же есть примеры ввода и вывода:
Ввод 1
2 3 4 5
Вывод 1
-0.288

Весь парадокс в том, что программа выдает верный ответ, а затем выдает как раз то сообщение:
Run-Time Check Failure #2 - Stack around the variable 'A' was corrupted.
0
 Аватар для iama
1360 / 988 / 119
Регистрация: 30.07.2010
Сообщений: 5,297
12.02.2013, 23:24
Оу, я просто код не читал. Когда вы указываете в квадратных скобках 3, вы просто создаете массив из трёх элементов, следовательно если вы обратитесь к третьему элементу — вы нарушите границы массива.
0
 Аватар для Wolkodav
842 / 480 / 58
Регистрация: 18.09.2012
Сообщений: 1,688
12.02.2013, 23:25
C++
1
#define SIZE 4
0
0 / 0 / 1
Регистрация: 12.02.2013
Сообщений: 11
12.02.2013, 23:26  [ТС]
Извольте, но разве нумерация массивов начинается с единицы?
0
 Аватар для iama
1360 / 988 / 119
Регистрация: 30.07.2010
Сообщений: 5,297
12.02.2013, 23:26
R0adTr1p, в Си — с нуля, следовательно, в С++ — тоже.
0
 Аватар для Kuzia domovenok
4268 / 3327 / 926
Регистрация: 25.03.2012
Сообщений: 12,532
Записей в блоге: 1
12.02.2013, 23:28
Цитата Сообщение от R0adTr1p Посмотреть сообщение
Извольте, но разве нумерация массивов начинается с единицы?
начинается - с нуля
заканчивается, если можно так выразится, на SIZE-1 включительно
1
16 / 16 / 3
Регистрация: 06.02.2013
Сообщений: 57
12.02.2013, 23:28
R0adTr1p, float A[SIZE] значит что создаётся массив вещественных чисел на SIZE элементов
0
0 / 0 / 1
Регистрация: 12.02.2013
Сообщений: 11
12.02.2013, 23:31  [ТС]
Цитата Сообщение от Kuzia domovenok Посмотреть сообщение
начинается - с нуля
заканчивается, если можно так выразится, на SIZE-1 включительно
Все понятно.) Спасибо. Что то я снубил
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
12.02.2013, 23:31
Помогаю со студенческими работами здесь

Переполнение массива объектного типа string
Не получается инициализировать двумерный string-массив во время выполнения кода: #include &lt;iostream&gt; #include...

Исключительная ситуация (переполнение массива сверху)
Изучаем сейчас исключительные ситуации и нужно привести пример , т.е. вызвать исключительную ситуацию для переполнения массива сверху или...

Переполнение стека в рекурсивной функции сортировки большого массива
Написал рекурсивную функцию сортировки массива, с массивами небольших размеров все работает как надо, а вот если сортирую побоьлше (60000...

Переполнение
При вводе слишком большого числа (например: 4444444444444444) программа зацикливается и постоянно выводит &quot;Ошибка. Введенный элемент...

Переполнение
Доброго времени суток! Есть код: void menu() { IndexList Universal; List *tmp = NULL; int punkt_menu; char *value =...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru