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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Игорь98
34 / 34 / 3
Регистрация: 12.02.2010
Сообщений: 239
#1

Ошибка с массивами - C++

05.06.2011, 14:15. Просмотров 288. Ответов 1
Метки нет (Все метки)

Доброго времени суток. Пишу игру двадцать одно очко. Возникли проблемы с массивами. Есть класс, где хранятся: названия карт, значения карт, сумма всех очков и пара функций для генерации карт.
Сам класс:
C++
1
2
3
4
5
6
7
8
9
10
11
12
#ifndef _KARDS_H
#define _KARDS_H
class kards
{
    public:
    AnsiString kard[5];
    int znachenie[5];
    int sum;
    AnsiString generate(void); // функция для генерации случайной карты
    int znach(AnsiString kard); // функции для вычисления значения карты
};
#endif
И есть поток который работает с классом:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
void __fastcall GenIgrok::Execute()
{
    kards igrok;
    
    for (int i = 0; i < 6; i++)
    {       
        igrok.kard[i] = igrok.generate(); 
        igrok.znachenie[i] = igrok.znach(igrok.kard[i]);
    }
    
    HMODULE hdll = LoadLibrary("kards.dll");
    if (!hdll)
    {
        MessageDlg("Библиотека 'kards.dll' не найдена!", mtError,
            TMsgDlgButtons() << mbOK, 0);
        return;
    }
 
    Form1->Image8->Picture->Bitmap->LoadFromResourceName((unsigned int)hdll, igrok.kard[0]);
    Form1->Image9->Picture->Bitmap->LoadFromResourceName((unsigned int)hdll, igrok.kard[1]);
 
    FreeLibrary(hdll);
}
Когда программа выполняется появляется ошибка (скрин прикрепил), дальше программа отлично работает, все генерирует и все подсчитывает, но меня напрягает эта ошибка

Ради интереса попробовал немного изменить код, сделать без массивов.
Класс:
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
#ifndef _KARDS_H
#define _KARDS_H
 
class kards
{
    public:
    AnsiString kard1;
    AnsiString kard2;
    AnsiString kard3;
    AnsiString kard4;
    AnsiString kard5;
    AnsiString kard6;
 
    int znachenie1;
    int znachenie2;
    int znachenie3;
    int znachenie4;
    int znachenie5;
    int znachenie6;
 
    int sum;
    AnsiString generate(void);
    int znach(AnsiString kard);
};
 
#endif
Поток:
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
void __fastcall GenIgrok::Execute()
{
    kards igrok;
 
    igrok.kard1 = igrok.generate();
    igrok.znachenie1 = igrok.znach(igrok.kard1);
 
    igrok.kard2 = igrok.generate();
    igrok.znachenie2 = igrok.znach(igrok.kard2);
 
    igrok.kard3 = igrok.generate();
    igrok.znachenie3 = igrok.znach(igrok.kard3);
 
    igrok.kard4 = igrok.generate();
    igrok.znachenie4 = igrok.znach(igrok.kard4);
 
    igrok.kard5 = igrok.generate();
    igrok.znachenie5 = igrok.znach(igrok.kard5);
 
    igrok.kard6 = igrok.generate();
    igrok.znachenie6 = igrok.znach(igrok.kard6);
 
    HMODULE hdll = LoadLibrary("kards.dll");
    if (!hdll)
    {
        MessageDlg("Библиотека 'kards.dll' не найдена!", mtError,
            TMsgDlgButtons() << mbOK, 0);
        return;
    }
 
    Form1->Image8->Picture->Bitmap->LoadFromResourceName((unsigned int)hdll, igrok.kard1);
    Form1->Image9->Picture->Bitmap->LoadFromResourceName((unsigned int)hdll, igrok.kard2);
 
    FreeLibrary(hdll);
}
Код отлично и без ошибок работает, но меня это не очень устраивает, хотелось бы разобраться с массивами!
Миниатюры
Ошибка с массивами  
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.06.2011, 14:15     Ошибка с массивами
Посмотрите здесь:

Ошибка, связанная с массивами - C++
Вот такой код для такой задачи: записать в массиве М количество положительных элементов каждого столбца матрицы A(K,L). #include...

Задачи с массивами (Ошибка) - C++
Ребят, учусь на первом курсе, экзамен по программированию..задача на массивы двумерном массиве 8х10 поменять местами левую верхнюю...

Ошибка в коде (работа с массивами) - C++
помогите исправить ошибку в коде немогу понять в чем проблема #include &lt;iostream&gt; #include &lt;string&gt; #include &lt;limits&gt; #include...

Ошибка в программе. Работа с двумерными массивами - C++
Задача:Три группы студентов, в каждой из которых 20 человек, в сессию сдавали по 3 экзамена. Сведения об оценках каждой группы хранятся в...

Ошибка при работе с массивами char - C++
Задание: написать функцию для сложения целых двоичных чисел. Слагаемые должны иметь тип unsigned char. Вот что получилось, но после...

Ошибка в перегрузке оператора - при работе с массивами - C++
Текст программы: #include &lt;iostream&gt; #include &lt;windows.h&gt; using namespace std; class array { public: array(); ...

Ошибка с памятью при работе с двумерными массивами. - C++
{ int i, j, c, kol; n=StrToInt(Edit1-&gt;Text); m=StrToInt(Edit2-&gt;Text); for(i=0; i&lt;n; i++) { for(j=0; j&lt;m; j++)...

Операции с массивами (есть логическая ошибка, не пойму где) - C++
Программа компилируется нормально. Спрашивает кол-во элементов массива. Вводятся элементы массива Считает сумму от первого до...

3 задачки с массивами - C++
Здравствуйте. Помогите в написании кода. Сложно дается С++ Первый код я написал (не сам, исходя из примеров в интернете). Но вот хотел бы...

Задача с массивами - C++
Вычислить сумму элементов вещественного массива, находящихся до минимального и после максимального элементов. Создать функции для...

Задачи с массивами - C++
Добрый вечер, уважаемые программисты. Прошу у вас помощи с задачами.

Задачи с массивами - C++
Задан массив Y(M). Вы числить сумму 2ух наибольших и 2ух наименьших элементов массива.(M&gt;5) ПОМОГИТЕ КТО МОЖЕТ ОЧЕНЬ НАДО!!!


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
grizlik78
Эксперт С++
1908 / 1440 / 110
Регистрация: 29.05.2011
Сообщений: 2,995
05.06.2011, 14:22     Ошибка с массивами #2
Вот здесь:
C++
1
2
3
4
5
class kards
{
        AnsiString kard[5];
        int znachenie[5];
};
для создаются массивы по 5 элементов.
А вот здесь:
C++
1
2
3
4
5
        for (int i = 0; i < 6; i++)
        {               
                igrok.kard[i] = igrok.generate(); 
                igrok.znachenie[i] = igrok.znach(igrok.kard[i]);
        }
Используется по 6 элементов из каждого массива.
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru