0 / 0 / 1
Регистрация: 06.11.2014
Сообщений: 156

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

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

Студворк — интернет-сервис помощи студентам
Как перезаписать ранее заполненный динамический массив? Нужно сделать некую функцию редактирования, для этого нужно понять как можно перезаписать массив, его определенный участок. Пробовал сделать но в итоге после вылетали ошибки с правами доступа. В ином случае данные вроде и записывались в массив, но были видны только в этой функции (делал сразу вывод того участка массива куда и записывал).
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
22.05.2015, 00:08
Ответы с готовыми решениями:

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

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

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

5
50 / 49 / 29
Регистрация: 11.11.2014
Сообщений: 332
22.05.2015, 00:11
C++
1
delete [] arr;
0
lss
941 / 869 / 355
Регистрация: 10.10.2012
Сообщений: 2,706
22.05.2015, 00:32
Цитата Сообщение от 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  [ТС]
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
для перезаписи ячейки массива вам нужен лишь индекс этой ячейки. итого, надо запросить этот индекс и дальше менять ее:
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  [ТС]
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
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
22.05.2015, 23:40
Помогаю со студенческими работами здесь

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

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

Новые блоги и статьи
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут Суть: - Группа наркоманов из 10 человек. - Только один инфицирован ВИЧ. - Колются одной иглой. - Колются раз в день. - Колются последовательно через. . .
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru