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

Создание структур содержащие переменные - C++

Восстановить пароль Регистрация
 
Binary Mind
 Аватар для Binary Mind
2 / 2 / 0
Регистрация: 12.02.2014
Сообщений: 56
15.02.2014, 08:30     Создание структур содержащие переменные #1
Доброе время суток, подскажите пожалуйста, как можно и вообще можно ли создать структуру, которая содержит переменную. Например что - то типа этого

C++
1
2
3
4
5
6
struct sss
{
    int array[x];
    int matrix[y][z];
};
// где x, y и z вводятся пользователем
Лучшие ответы (1)
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
zvoronz
 Аватар для zvoronz
270 / 237 / 21
Регистрация: 29.05.2012
Сообщений: 889
15.02.2014, 09:00     Создание структур содержащие переменные #2
Так легко всё не получится. Нужно использовать указатели и динамическое выделение памяти.
zss
Модератор
Эксперт С++
 Аватар для zss
5944 / 5549 / 1783
Регистрация: 18.12.2011
Сообщений: 14,175
Завершенные тесты: 1
15.02.2014, 10:38     Создание структур содержащие переменные #3
Сообщение было отмечено автором темы, экспертом или модератором как ответ
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
struct sss
{
int x,y,z;
int *array, **matrix;
sss(int x0,int y0,int z0):x(x0),y(y0),z(z0)
{
     array=new int[x];
     matrix=new int*[y];
     for(int i=0;i<y;i++)
           matrix[i]=new int[z];
}
~sss()
{
    delete[] array;
    for(int i=0;i<y;i++)
       delete[] matrix[i];
    delete[] matrix;
};
int main()
{
   sss ar1(2,3,4);
};
Binary Mind
 Аватар для Binary Mind
2 / 2 / 0
Регистрация: 12.02.2014
Сообщений: 56
16.02.2014, 02:26  [ТС]     Создание структур содержащие переменные #4
zss, в ~sss не закрыл тело , а так всё работает. Большое Спасибо, выручил!!!

Добавлено через 27 минут
Ещё один вопрос возник, структура есть, а как создать массив из этой структуры?
zss
Модератор
Эксперт С++
 Аватар для zss
5944 / 5549 / 1783
Регистрация: 18.12.2011
Сообщений: 14,175
Завершенные тесты: 1
16.02.2014, 10:27     Создание структур содержащие переменные #5
Цитата Сообщение от Binary Mind Посмотреть сообщение
а как создать массив из этой структуры?
C++
1
2
3
sss ar1[10];
int n=10;
sss *pa=new sss[n];
Binary Mind
 Аватар для Binary Mind
2 / 2 / 0
Регистрация: 12.02.2014
Сообщений: 56
16.02.2014, 12:37  [ТС]     Создание структур содержащие переменные #6
Цитата Сообщение от zss Посмотреть сообщение
C++
1
2
3
sss ar1[10];
int n=10;
sss *pa=new sss[n];
не получается
, он требует аргументы для sss
Megabar
22 / 22 / 3
Регистрация: 01.12.2013
Сообщений: 93
16.02.2014, 13:07     Создание структур содержащие переменные #7
Цитата Сообщение от Binary Mind Посмотреть сообщение
не получается
, он требует аргументы для sss
потому что конструктор с аргументами, попробуйте сделать подобно этому
C++
1
2
3
4
MyClass **myVar;
myVar = new MyClass *[num];
for(i = 0;i < num;i++)
   myVar[i] = new MyClass(0,0);
Kuzia domovenok
 Аватар для Kuzia domovenok
1882 / 1737 / 116
Регистрация: 25.03.2012
Сообщений: 5,907
Записей в блоге: 1
16.02.2014, 13:35     Создание структур содержащие переменные #8
Megabar, или можно plаcement new использовать!
Binary Mind
 Аватар для Binary Mind
2 / 2 / 0
Регистрация: 12.02.2014
Сообщений: 56
16.02.2014, 15:11  [ТС]     Создание структур содержащие переменные #9
Цитата Сообщение от Kuzia domovenok Посмотреть сообщение
можно plаcement new использовать!
Kuzia domovenok, это как, можно пример?
zss
Модератор
Эксперт С++
 Аватар для zss
5944 / 5549 / 1783
Регистрация: 18.12.2011
Сообщений: 14,175
Завершенные тесты: 1
16.02.2014, 16:07     Создание структур содержащие переменные #10
Зачем делать проблемы на пустом месте:
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
class sss
{
public:
int x,y,z;
int *array, **matrix;
sss():x(3),y(3),z(3)   // конструктор по умолчанию
{
     array=new int[x];
     matrix=new int*[y];
     for(int i=0;i<y;i++)
           matrix[i]=new int[z];
}
void resize(int x0,int y0,int z0)// изменение размеров
{
    x=x0,y=y0,z=z0;
    delete[] array;
    array=new int[x];
    for(int i=0;i<y;i++)
        delete[] matrix[i];
    delete[] matrix;
    matrix=new int*[y];
    for(int i=0;i<y;i++)
          matrix[i]=new int[z];
}
sss(int x0,int y0,int z0):x(x0),y(y0),z(z0)
{
     array=new int[x];
     matrix=new int*[y];
     for(int i=0;i<y;i++)
           matrix[i]=new int[z];
}
~sss()
{
    delete[] array;
    for(int i=0;i<y;i++)
       delete[] matrix[i];
    delete[] matrix;
}
};
int main()
{
   sss ar1[10];
   for(int i=0;i<10;i++)
       ar1[i].resize(i+1,i+1,i+1);
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.02.2014, 01:51     Создание структур содержащие переменные
Еще ссылки по теме:

Найти слова, содержащие букву “d” C++
Вывести предложения, не содержащие запятых C++
Создание массива массивов структур с++ C++

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

Или воспользуйтесь поиском по форуму:
Kuzia domovenok
 Аватар для Kuzia domovenok
1882 / 1737 / 116
Регистрация: 25.03.2012
Сообщений: 5,907
Записей в блоге: 1
17.02.2014, 01:51     Создание структур содержащие переменные #11
C++
1
2
3
4
5
6
7
8
9
10
11
int i, n=10;
int param1=20, param2=30;
sss* arr1=operator new(n*sizeof(sss));
for (i=0; i<n; ++i)
  new(&arr1[i])sss(param1, param2);
 
//работа с массивом
 
for(i=0; i<n; ++i)
  arr1[i].~sss();
operator delete(arr1);
Yandex
Объявления
17.02.2014, 01:51     Создание структур содержащие переменные
Ответ Создать тему
Опции темы

Текущее время: 17:55. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru