Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

Прекращена работа программы proj.exe - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Уже 2 года не могу установить c++ http://www.cyberforum.ru/cpp-beginners/thread947534.html
Ребят нужно работать на 2010 версии, но при установке на этапе VC 9.0 во всех версиях возникает или ошибка или до бесконечности зависает установка, мне пришла в голову мысль - можно установить на...
C++ Не вводится int в функции класса Помогите пожалуйста... Я хочу сделать Свой класс, в котором будут функции, одинаковые по названию, одинаковые по типу, но разные по водимым параметрам. Т.е. что Я хочу сделать... Вот, у Меня есть... http://www.cyberforum.ru/cpp-beginners/thread947532.html
C++ Задание "Заказ пиццы" (на английском языке)
Здравствуйте, уважаемые Программисты. Я учусь на первом курсе, поэтому я еще новичок. Прошу вашей помощи в модификации программы. Тут у меня программа на английском. Задание таково: Я написал...
C++ Рекурсия: вычисление чисел Фибоначчи
Числа Фибоначчи Fn вычисляются по формуле F0=F1=1; Fn=Fn-1+Fn-2, при n=2,3,... Нужно реализовать функцию, которая по заданому номеру n будт вычеслять значение Fn. Использовать рекурсивный алгоритм...
C++ Вывести на печать сообщение о нечетности порядковых номеров букв, следующих за буквами g, l http://www.cyberforum.ru/cpp-beginners/thread947384.html
Друзья, помогите, пожалуйста. Нужно написать лабу, а нам вообще ничего не объяснили. Вот задание. Вывести на печать сообщение о нечетности порядковых номеров букв, следующих за буквами g, l.
C++ где что добавить надо или убрать? помогите подогнать этот код для моего задания using namespace std; int *Create(int n) { if(n<=10000) { int *arr; arr= new int ; for ( int i=0; i<n; i++) подробнее

Показать сообщение отдельно
alsav22
5421 / 4816 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
03.09.2013, 02:16
TrickSonix, бегло просмотрел некоторые места кода, у вас во многих местах выход за границу объявленных массивов. Например, setCorabl():
C++
1
2
3
4
if(numberOfShips[4] < 1)
{
       setCorabl(4);
}
Массив объялен так:
C++
1
int numberOfShips[4];
Значит последний допустимый индекс 3, у вас обращение по 4-му индексу.
В конструкторе тоже самое:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
Sea::Sea(string name)
{
    for (int i3 = 1; i3 <= 4; i3++)
        numberOfShips[i3] = 0;
    PlayerName = name;
    for (int i = 0; i <= 10; i++)
    {
        for (int j = 0; j <= 10; j++)
            pole[i][j] = 0;
    }
    for (int i1 = 0; i1 <= 10; i1++)
    {
        for (int j1 = 0; j1 <= 10; j1++)
            poleVistrelov[i1][j1] = 0;
    }
    for (int i2 = 0; i2 <= 20; i2++)
    {
        for (int j2 = 0; j2 <= 2; j2++)
            coordinatiCorablei[i2][j2] = 0;
    }
}
Использование, в параметрах for(), оператора <= (вместо <), приводит к выходу за пределы всех объявленных массивов.
Потом, по стандарту (который компилятор DevC++ с успехом обходит), нельзя статически создавать массив не константного размера:
C++
1
2
3
4
5
void Sea::setCorabl(int size)
{
    int num = 1;
    int xy[2*size];
...
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru