Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.91/11: Рейтинг темы: голосов - 11, средняя оценка - 4.91
0 / 0 / 0
Регистрация: 26.11.2012
Сообщений: 12

"Глобальный" массив в функции

26.11.2012, 18:27. Показов 2433. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый вечер, недавно начал изучать с++и вот нужна помощь, существует на форме 3 кнопки нужно сделать так что бы при нажатии на одну создавался двумерный массив ну предположим 3 на 3 причем "глобально" ну то-есть этот массив можно было использовать в других функциях ну например тыкнул по другой кнопочке и в этот массив вписалось значение переменной и тд. заранее спасибо.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
26.11.2012, 18:27
Ответы с готовыми решениями:

Глобальный динамический массив
в общем делаю одно задание в котором нужно создать некий динамический массив классов ну и далее работать с ними, при этом нужно...

Построение динамического массива в функции и его перевод в глобальный динамический массив
Здравствуйте, моя проблема заключается в передаче построеного в функции динамического массива fdarray в глобальный динамический массив...

Глобальный динамический массив
В общем проблема вот в чем, пытаюсь сделать глобальный динамический массив структур но что-то идет не так. Странная ошибка с...

8
3 / 3 / 0
Регистрация: 20.06.2012
Сообщений: 17
26.11.2012, 20:09
Пример для одномерного массива
Unit1.h

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 Unit1H
#define Unit1H
//---------------------------------------------------------------------------
#include <Classes.hpp>
#include <Controls.hpp>
#include <StdCtrls.hpp>
#include <Forms.hpp>
//---------------------------------------------------------------------------
class TForm1 : public TForm
{
__published:    // IDE-managed Components
        TButton *Button1;
        TButton *Button2;
        TButton *Button3;
        void __fastcall Button1Click(TObject *Sender);
        void __fastcall Button2Click(TObject *Sender);
        void __fastcall Button3Click(TObject *Sender);
private:    // User declarations
public:     // User declarations
        __fastcall TForm1(TComponent* Owner);
};
//---------------------------------------------------------------------------
extern PACKAGE TForm1 *Form1;
//---------------------------------------------------------------------------
#endif

Unit1.cpp

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
36
37
38
39
#include <vcl.h>
#pragma hdrstop
 
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
int *mas;  //îáúÿâëåíèå ãëîáàëüíîãî ìàññèâà
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------
 
void __fastcall TForm1::Button1Click(TObject *Sender) //êíîïêà 1
{
mas=new int[3];  //âûäåëåíèå ïàìÿòè äëÿ ãëîáàëüíîãî ìàññèâà
 
//çàïîëíåíèÿ ìàññèâà
mas[0]=1;
mas[1]=1;
mas[2]=1;
}
//---------------------------------------------------------------------------
 
void __fastcall TForm1::Button2Click(TObject *Sender) //êíîïêà 2
{
//äåéñòâèÿ ñ ìàññèâîì
mas[0]=mas[0]+1;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button3Click(TObject *Sender)
{
//äåéñòâèÿ ñ ìàññèâîì
mas[0]=mas[0]+1;
}
//---------------------------------------------------------------------------
0
0 / 0 / 0
Регистрация: 26.11.2012
Сообщений: 12
26.11.2012, 20:44  [ТС]
хорошо, спасибо, а допустим мне двумерный массив нужен то вместо
int *mas
пишем int **mas;
и вместо
mas=new int[3];
int** mas = new int*[3];
for(int i=0;i<3;i++)
mas[i]=new int[3];???
0
0 / 0 / 0
Регистрация: 26.11.2012
Сообщений: 12
26.11.2012, 20:56  [ТС]
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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
//---------------------------------------------------------------------------
 
#include <vcl.h>
#pragma hdrstop
 
#include "Kurs.h"
#include <jpeg.hpp>
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
 
 
//---------------------------------------------------------------------------
int** kletka;
__fastcall TForm1::TForm1(TComponent* Owner)
    : TForm(Owner)
{
}
//---------------------------------------------------------------------------
 
 
 
 
 
void __fastcall TForm1::N3x31Click(TObject *Sender)    //выбор в горизонтальном меню вкладки 3x3
{ int i,j;
 
int** kletka = new int*[3];// выделение памяти под массива
for(int i=0;i<3;i++)
kletka[i]=new int[3];
 
for (j = 0; j < 4; j++) {
    for (i = 0; i < 4; i++) {
 TImage * e = dynamic_cast<TImage*>( FindComponent("Kletka" + IntToStr(j)+"x"+IntToStr(i+1)));  //находим киртинку с названием Kletka"j"x"i"
    if (e)  //если был найден
        e-> Picture->LoadFromFile("c:\\Users\\Администратор\\Documents\\RAD Studio\\Projects\\Kurs pic\\Kletka.jpg");  //подгружаем картинку "Kletka"
    }
}
}
 
void raschet(int x,int y)
{
int k=0;
   }
//---------------------------------------------------------------------------
void __fastcall TForm1::Kletka1x1Click(TObject *Sender)
{ int a,b;
Kletka1x1-> Picture->LoadFromFile("c:\\Users\\Администратор\\Documents\\RAD Studio\\Projects\\Kurs pic\\Krest.jpg");
  kletka[0][0]=1;//вылазит ошибка 
 raschet(a,b);
 
}
Миниатюры
"Глобальный" массив в функции   "Глобальный" массив в функции  
0
0 / 0 / 0
Регистрация: 26.11.2012
Сообщений: 12
26.11.2012, 21:02  [ТС]
вот собственно код программы которая при нажатии (пока только для одной (недавно начал писать)) клетки 1x1 вписываем в элемент массива kletka[0][0] =1+ меняем картинку в данной ячейке
0
3 / 3 / 0
Регистрация: 20.06.2012
Сообщений: 17
26.11.2012, 21:11
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
36
37
38
39
#include <vcl.h>
#pragma hdrstop
 
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
int (*mas)[3]; //îáúÿâëåíèå ãëîáàëüíîãî ìàññèâà
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------
 
void __fastcall TForm1::Button1Click(TObject *Sender) //êíîïêà 1
{
mas=new int[3][3];  //âûäåëåíèå ïàìÿòè äëÿ ãëîáàëüíîãî ìàññèâà
 
//çàïîëíåíèÿ ìàññèâà
mas[0][0]=1;
mas[0][1]=1;
mas[0][2]=1;
}
//---------------------------------------------------------------------------
 
void __fastcall TForm1::Button2Click(TObject *Sender) //êíîïêà 2
{
//äåéñòâèÿ ñ ìàññèâîì
mas[0][0]=mas[0][0]+1;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button3Click(TObject *Sender)
{
//äåéñòâèÿ ñ ìàññèâîì
mas[0][0]=mas[0][0]+1;
}
//---------------------------------------------------------------------------
2
0 / 0 / 0
Регистрация: 26.11.2012
Сообщений: 12
26.11.2012, 21:24  [ТС]
int (*mas)[3]; //объявление глобального массива
еще проблемка, у меня не известно какую кнопку нажмет пользователь либо поле либо 3на3 либо 5 на 5 или же 9на9(насколько я сам понимаю динамический массив) т.е. если пользователь нажмет кнопку 3на3 то создается массив размерностью 3 на 3 если на 5на5 то соответственно массив размерность 5на5 и тд.
0
3 / 3 / 0
Регистрация: 20.06.2012
Сообщений: 17
26.11.2012, 21:29
Объявляте максимально возможное значение
int (*mas)[9]; //объявление глобального массива
mas=new int[9][9]; //выделение памяти для глобального массива
1
Практикантроп
 Аватар для nick42
4841 / 2726 / 534
Регистрация: 23.09.2011
Сообщений: 5,798
26.11.2012, 22:22
вот пример__
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
//---------------------------------------------------------------------------
     int kk ;
     int * *m_arr;
//---------------------------------------------------------------------------
 
void __fastcall TForm1::Button1Click(TObject *Sender)
{
    kk = TrackBar1->Position ;
    m_arr = new int*[kk] ;
    for (int i=0;i<kk;i++)  m_arr[i] = new int[kk] ;
}
//---------------------------------------------------------------------------
 
void __fastcall TForm1::Button2Click(TObject *Sender)
{
     for (int i=0;i<kk;i++)
       for (int j=0;j<kk;j++)
         m_arr[i][j] = (rand() % 90) + 10;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button3Click(TObject *Sender)
{
     for (int i=0;i<kk;i++)
       for (int j=0;j<kk;j++)
         Memo1->Lines->Add(IntToStr(m_arr[i][j]));
}
//---------------------------------------------------------------------------
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
26.11.2012, 22:22
Помогаю со студенческими работами здесь

Глобальный динамический двумерный массив
Вообще то задача на Си, но в разделе мало людей, поэтому пишу тут, помогите пожалуйста. Вообщем есть задача считать файл в функции init(),...

Локальный или глобальный массив векторов
Везде в литературе рекомендуется создавать локальные объекты. Основные аргументы - они легче оптимизируются и безопаснее. У меня такия...

Поместить числа из файла в глобальный целочисленный динамический массив
Здравствуйте! На днях начал изучать qt. Столкнулся со следующей задачей. У меня есть файл с N-ым количеством чисел ( числа разделены...

Глобальный вектор. Почему на выходе этот массив пуст?
юзаю либу вектор. почему на выходе этот массив пуст? std::vector&lt;int&gt; qw;//global int main() { int i=1; qw.push_back(i); ...

Глобальный массив в качестве аргумента функции
Наверное такое делать нельзя, т.к. в этом случае получил ошибку, что нельзя переопределить глобальyю переменную в аргументах функции. ...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
Загрузка PNG-файла с альфа-каналом с помощью библиотеки SDL3_image на Android
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru