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

статический массив ----> динамический массив - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 13, средняя оценка - 4.69
^nex
0 / 0 / 0
Регистрация: 22.04.2009
Сообщений: 24
29.12.2009, 19:44     статический массив ----> динамический массив #1
Есть программа, нужно статический массив заменить на динамический. Как будет выглядеть?

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
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
#include <iostream> 
#include <windows.h> 
#include <fstream> 
#include <cstdlib> 
#include <cstring> 
using namespace std; 
// Определение структуры 
struct sotrudnik 
{// определение полей 
    // фамилия 
    char ns[40]; 
    // должность 
    char nz[40]; 
    // год рождения 
    double ob; 
    // заработанная плата 
    char avt[30]; 
}; 
// Главная функция 
void main() 
{// Объявление массивов объектов структуры 
    sotrudnik d[3]; 
    sotrudnik dt[4]; 
 // Объявление потока записи информации в файл 
    ofstream f; 
 // Объявление необходимых строк 
    char str0[30], str1[80], str2[80], str3[80], str4[80], str5[80], s[80], str[80]; 
     
    CharToOemA("Введите путь к файлу \n",str); 
    cout<<str; 
    cin>>s; 
 // связывание потока записи с файлом 
    f.open(s); 
 // проверка успешности открытия файла 
    if(f.fail())   {cout<<"\n oshibka otkritiya faila"; 
                    exit(1); 
                   } 
 
CharToOemA(" Введите информацию о сотруднике ",str1); 
    CharToOemA("\n фамилия: ",str2); 
    CharToOemA("\n год рождения : ",str3); 
    CharToOemA("\n должность: ",str4); 
    CharToOemA("\n заработанная плата: ",str5); 
    CharToOemA("-й сотрудник ",str0); 
int i;     
    for(i=0;i<3;i++) 
      {cout<<"\n"<<i+1; 
       cout<<str0; 
       cout<<str1; 
       cout<<str2; 
       cin>>d[i].ns; 
       cout<<str3; 
       cin>>d[i].ob; 
       cout<<str4; 
       cin>>d[i].nz; 
       cout<<str5; 
       cin>>d[i].avt; 
       cout<<"\n \n"; 
      } 
CharToOemA(" Введенная информация о сотрудниках ",str1); 
f<<str1; 
    for(i=0;i<3;i++) 
      {f<<"\n"<<i+1; 
       f<<str0; 
       f<<str2; 
       f<<d[i].ns; 
       f<<str3; 
       f<<d[i].ob; 
       f<<str4; 
       f<<d[i].nz; 
       f<<str5; 
       f<<d[i].avt; 
       f<<"\n \n"; 
      } 
// Удаление элемента из массива по названию 
       char p1[40], *p2[40],*p3[40];   
       CharToOemA("\n Ввести фамилию удаляемого сотрудника: ",str); 
       cout<<str; 
       cin>>p1; 
       for(i=0;i<3;i++) 
       {*p2=d[i].ns; 
       *p3=p1; 
       int t; 
         t=strcmp(*p3,*p2); 
       if(t==0)  
       {d[i]=d[i+1];  
       CharToOemA("\nУдаляем  ",str); 
       CharToOemA("  сотрудник  \n",str1); 
       cout<<str<<i+1<<str1;} 
       else {CharToOemA("-й не указанный сотрудник \n",str); 
       cout<<i+1<<str;       } 
      } 
 
CharToOemA("\n Список после удаления выбранного элемента \n",str); 
    f<<str; 
    for(i=0;i<2;i++) 
      {f<<"\n"<<i+1; 
       f<<str0; 
       f<<str2; 
       f<<d[i].ns; 
       f<<str3; 
       f<<d[i].ob; 
       f<<str4; 
       f<<d[i].nz; 
       f<<str5; 
       f<<d[i].avt; 
       f<<"\n \n"; 
      } 
 
cout<<"\n\n"; 
int k; 
// Добавление новых элементов в список 
    CharToOemA("\n Добавление новых элементов \n",str); 
    cout<<str; 
    CharToOemA("\n Ввести количество элементов: ",str); 
    cout<<str; 
    cin>>k; 
    for(i=0;i<2;i++) 
      {dt[i]=d[i]; 
      } 
    for(i=2;i<2+k;i++) 
      {cout<<"\n"<<i+1; 
       cout<<str1; 
       cout<<str2; 
       cin>>dt[i].ns; 
       cout<<str3; 
       cin>>dt[i].ob; 
       cout<<str4; 
       cin>>dt[i].nz; 
       cout<<str5; 
       cin>>dt[i].avt; 
       cout<<"\n \n"; 
      } 
 
 CharToOemA("\n Список после добавления новых элементов \n",str); 
    f<<str; 
    for(i=0;i<2+k;i++) 
      {f<<"\n"<<i+1; 
       f<<str0; 
       f<<str2; 
       f<<dt[i].ns; 
       f<<str3; 
       f<<dt[i].ob; 
       f<<str4; 
       f<<dt[i].nz; 
       f<<str5; 
       f<<dt[i].avt; 
       f<<"\n \n"; 
      } 
// Закрытие файла 
    f.close(); 
    cout<<endl; 
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.12.2009, 19:44     статический массив ----> динамический массив
Посмотрите здесь:

C++ Как перевести статический массив в динамический?
C++ Нужно создать статический массив строк как статический массив указателей на строки. Условние ниже -->
C++ создать статический массив строк как статический массив указателей на строки, задание ниже -->
Переделать статический массив в динамический C++
C++ Переделать динамический массив на статический массив
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
breeve
 Аватар для breeve
73 / 73 / 14
Регистрация: 01.08.2009
Сообщений: 177
29.12.2009, 19:55     статический массив ----> динамический массив #2
объявление динамического массива:
C++
1
2
3
int *a;
int size;
a = new int[size];
Добавлено через 2 минуты
соответственно если делаешь массив из структур то выйдет так:
C++
1
2
3
sotrudnik *str;
int size; // А размер можно с клавиатуры считать
a = new sotrudnik[size];
^nex
0 / 0 / 0
Регистрация: 22.04.2009
Сообщений: 24
29.12.2009, 20:00  [ТС]     статический массив ----> динамический массив #3
а куда это вставляется, если можно как уже готовая программа будет выглядеть?
breeve
 Аватар для breeve
73 / 73 / 14
Регистрация: 01.08.2009
Сообщений: 177
29.12.2009, 20:05     статический массив ----> динамический массив #4
Цитата Сообщение от ^nex Посмотреть сообщение
а куда это вставляется, если можно как уже готовая программа будет выглядеть?
Если не знаешь ты, то я то тем более)) Ты мне скажи что именно у тебя тут должно быть динамическим)) Или если есть задание кинь.. а иначе ничем не могу помочь..
^nex
0 / 0 / 0
Регистрация: 22.04.2009
Сообщений: 24
29.12.2009, 20:09  [ТС]     статический массив ----> динамический массив #5
char* + выделение памяти

вроде что то типа этого

C++
1
2
// Объявление необходимых строк 
    char* str0, str1,.............;
breeve
 Аватар для breeve
73 / 73 / 14
Регистрация: 01.08.2009
Сообщений: 177
29.12.2009, 20:11     статический массив ----> динамический массив #6
Цитата Сообщение от ^nex Посмотреть сообщение
char* + выделение памяти
Ну это я понимаю, под что тебе надо динамически выделять? У тебя тут этих массивов сто штук..
^nex
0 / 0 / 0
Регистрация: 22.04.2009
Сообщений: 24
29.12.2009, 21:55  [ТС]     статический массив ----> динамический массив #7
под что тут может выделить динамически?

Добавлено через 1 час 24 минуты
C++
1
 sotrudnik d[3];
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.12.2009, 23:00     статический массив ----> динамический массив
Еще ссылки по теме:

Переделать статический массив в динамический C++
Переделать статический массив в динамический C++
Нужно переделать статический массив в динамический C++

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

Или воспользуйтесь поиском по форуму:
Андрейка
407 / 211 / 22
Регистрация: 25.03.2009
Сообщений: 710
29.12.2009, 23:00     статический массив ----> динамический массив #8
^nex, sotrudnik *d = new sotrudnik[3];
Yandex
Объявления
29.12.2009, 23:00     статический массив ----> динамический массив
Ответ Создать тему
Опции темы

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