Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/3: Рейтинг темы: голосов - 3, средняя оценка - 5.00
37 / 37 / 5
Регистрация: 12.02.2010
Сообщений: 239

Ошибка с массивами

05.06.2011, 14:15. Показов 592. Ответов 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);
}
Код отлично и без ошибок работает, но меня это не очень устраивает, хотелось бы разобраться с массивами!
Миниатюры
Ошибка с массивами  
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
05.06.2011, 14:15
Ответы с готовыми решениями:

Ошибка с массивами в Windows XP
Написал программу. Если ее запускать в Windows 7 или Windows 98 SE то работает корректно, если же запустить в Windows XP то возникает...

Ошибка с двумернными массивами.
программа для суммы двумерных массивов. var x:array of integer; c:array of integer; b:array of integer; begin For i:=1 to n...

Ошибка в программе с массивами
Программа должна создавать двумерную матрицу и заполнять её рандомными числами в заданном диапазоне. при попытке построить массив...

1
Эксперт С++
 Аватар для grizlik78
2382 / 1666 / 279
Регистрация: 29.05.2011
Сообщений: 3,402
05.06.2011, 14:22
Вот здесь:
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 элементов из каждого массива.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
05.06.2011, 14:22
Помогаю со студенческими работами здесь

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

Ошибка со строковыми массивами
При запуске активити выдает вот эту ошибку: Error:Error: Duplicate resources:...

Ошибка в программе с массивами
Помогите,пожалуйста, исправить программу так,чтобы вместо всего массива мне выводило массив с заданным числом &quot;n&quot;. Например,у...

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

Ошибка при работе с массивами
Здравствуйте. Хочу сделать программу, которая сортирует цифры. Вот код: #include &lt;iostream&gt; using namespace std; int...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru