Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.78/18: Рейтинг темы: голосов - 18, средняя оценка - 4.78
0 / 0 / 1
Регистрация: 06.11.2014
Сообщений: 156
1

Как перезаписать ранее заполненный динамический массив?

22.05.2015, 00:08. Показов 3406. Ответов 5
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Как перезаписать ранее заполненный динамический массив? Нужно сделать некую функцию редактирования, для этого нужно понять как можно перезаписать массив, его определенный участок. Пробовал сделать но в итоге после вылетали ошибки с правами доступа. В ином случае данные вроде и записывались в массив, но были видны только в этой функции (делал сразу вывод того участка массива куда и записывал).
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
22.05.2015, 00:08
Ответы с готовыми решениями:

Как перезаписать двумерный динамический массив?
Здравствуйте! Проблема в том, что при перезаписи массива с большой разницей в строках и столбцах...

Динамический массив при наследовании, элементами которого являются объекты класса наследника динамический массив
Попробовал создать динамический массив, у которого элементы - объекты класса динамический массив,...

Динамический массив ,элементами которого являются объекты класса динамический массив
Доброго времени суток, захотел создать динамический массив ,элементами которого являются объекты...

Как перезаписать динамический массив
Доброе время суток! Помогите, у меня на форме кнопка, заполняется массив (значения из таблицы) и...

5
50 / 49 / 29
Регистрация: 11.11.2014
Сообщений: 332
22.05.2015, 00:11 2
C++
1
delete [] arr;
0
lss
941 / 869 / 355
Регистрация: 10.10.2012
Сообщений: 2,706
22.05.2015, 00:32 3
Цитата Сообщение от Lord007 Посмотреть сообщение
Как перезаписать ранее заполненный динамический массив?
Задача, в общем-то, несложная, непонятно откуда проблемы. Покажи как делал.

Добавлено через 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
#include <iostream>
using namespace std;
 
void edit(int* arr, int beg, int end)
{
    for (int i = beg; i != end; ++i)
        arr[i] *= 2;
}
 
void main()
{
    int* arr = new int[5];
    for (int i = 0; i < 5; ++i)
        arr[i] = i + 1;
 
    for (int i = 0; i < 5; ++i)
        cout << arr[i] << ' ';
    cout << endl;
 
    edit(arr, 1, 4);
 
    for (int i = 0; i < 5; ++i)
        cout << arr[i] << ' ';
    cout << endl;
 
    delete [] arr;
    
    system("pause");
}
Миниатюры
Как перезаписать ранее заполненный динамический массив?  
0
0 / 0 / 1
Регистрация: 06.11.2014
Сообщений: 156
22.05.2015, 23:20  [ТС] 4
lss, вот мой код. Да, я знаю что написал скорее всего бред местами, но возможно ты поймешь что я хотел сделать и сможешь подсказать, как именно это сделать. Данные из массивов в моей программе выводятся в последовательности образующие строки, по этому эта функция Edit должна спрашивать № строки (напр 1), а затем должно всплывать меню в котором пользователь должен выбирать какой именно участок массива ему необходимо изменить(напр. arrCourt[i].scc).
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
void Edit(){
    cout << "Enter the number of rows to edit: ";
    double i = 0;
    cin >> i;
    delete[i] arrCourt;
    arrCourt = new courtcase[i];
        int menu2;
        do{
            cout << "We want to edit" << endl;
            cout << "1 - day " << endl;
            cout << "2 - mouth" << endl;
            cout << "3 - year" << endl;
            cout << "4 - subject of a court case" << endl;
            cout << "5 - Claimant company name" << endl;
            cout << "6 - Claimant company phone" << endl;
            cout << "7 - Accused company name" << endl;
            cout << "8 - Accused company phone" << endl;
            
            cin >> menu2;
            switch (menu2){
            case 1:
                cout << "Input day: ";
                cin >> arrCourt[i].info.d;
                break;
            case 2:
                cout << "Input mouth: ";
                cin >> arrCourt[i].info.m;
                break;
            case 3:
                cout << "Input year: ";
                cin >> arrCourt[i].info.y; 
                break;
            case 4:
                cout << "Input subject of a court case: ";
                cin >> arrCourt[i].scc;
                break;
            case 5:
                cout << "Input Claimant company name: ";
                cin >> arrCourt[i].cinf.data.fname;
                break;
            case 6:
                cout << "Input Claimant company phone: ";
                cin >> arrCourt[i].cinf.data.p;
                break;
            case 7:
                cout << "Input Accused company name: " ;
                cin >> arrCourt[i].acinf.data.p;
                break;
            case 8:
                cout << "Input Accused company phone: ";
                cin >> arrCourt[i].acinf.data.p;
                break;
                break;
            default: menu2 = 0;
            }
        } while (menu2 != 0);
        return 0;
    system("pause");
    system("cls");
    
    }
0
265 / 165 / 56
Регистрация: 25.02.2015
Сообщений: 435
22.05.2015, 23:28 5
для перезаписи ячейки массива вам нужен лишь индекс этой ячейки. итого, надо запросить этот индекс и дальше менять ее:
C++
1
2
3
4
5
6
 int i = 0;
 cin >> i;
 //delete[i] arrCourt; - не надо, т.к. удалит весь массив
 //arrCourt = new courtcase[i]; // не надо, т.к. создаст новый массив.
 
  // остальное похоже на правильный код.
1
0 / 0 / 1
Регистрация: 06.11.2014
Сообщений: 156
22.05.2015, 23:40  [ТС] 6
Perfilov, сначала я так и делал, но были ошибки, сейчас исправил и все нормально. Поторопился и сразу все не проверил и написал глупостей(.Как оказалось вот ошибки:
1)брал куски меню с другой функции и прихватил "return 0;", а функция у меня void.
2)И переменная "i" была с типом double, что не подошло, а int - отлично.
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
void Edit(){
    cout << "Enter the number of rows to edit: ";
    int i = 0;
    cin >> i;
    
        int menu2;
        do{
            cout << "We want to edit" << endl;
            cout << "1 - day " << endl;
            cout << "2 - mouth" << endl;
            cout << "3 - year" << endl;
            cout << "4 - subject of a court case" << endl;
            cout << "5 - Claimant company name" << endl;
            cout << "6 - Claimant company phone" << endl;
            cout << "7 - Accused company name" << endl;
            cout << "8 - Accused company phone" << endl;
            
            cin >> menu2;
            switch (menu2){
            case 1:
                cout << "Input day: ";
                cin >> arrCourt[i].info.d;
                break;
            case 2:
                cout << "Input mouth: ";
                cin >> arrCourt[i].info.m;
                break;
            case 3:
                cout << "Input year: ";
                cin >> arrCourt[i].info.y; 
                break;
            case 4:
                cout << "Input subject of a court case: ";
                cin >> arrCourt[i].scc;
                break;
            case 5:
                cout << "Input Claimant company name: ";
                cin >> arrCourt[i].cinf.data.fname;
                break;
            case 6:
                cout << "Input Claimant company phone: ";
                cin >> arrCourt[i].cinf.data.p;
                break;
            case 7:
                cout << "Input Accused company name: " ;
                cin >> arrCourt[i].acinf.data.p;
                break;
            case 8:
                cout << "Input Accused company phone: ";
                cin >> arrCourt[i].acinf.data.p;
                break;
                break;
            default: menu2 = 0;
            }
        } while (menu2 != 0);
        
    system("pause");
    system("cls");
    
    }
0
22.05.2015, 23:40
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
22.05.2015, 23:40
Помогаю со студенческими работами здесь

Дан двумерный массив, заполненный нулями и единицами. Найти прямоугольник, наибольшей площади, заполненный единицами
Дан двумерный массив, заполненный нулями и единицами. Найти прямоугольник, наибольшей площади,...

Как перезаписать массив из $_POST?
Люди добрые подскажите пожалуйста в $_POST лежит многомерный массив, как вывести его в переменную...

Как объявить заполненный двумерный массив в классе?
Привет, мне необходимо создать определенный массив 2х2 так, чтобы его было видно их разных функций...

Динамический ComboBox с автозаполнением зависящим от ранее выполненных условий
Доброго времени суток. Столкнулся со следующей ситуацией. Есть таблица в БД (SQL) где лежат имена...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru