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

Добавить новую строку в двумерный динамический массив

07.03.2016, 14:24. Показов 3451. Ответов 2
Метки нет (Все метки)

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

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
#include <iostream>
#include <time.h>
 
using namespace  std;
 
int** Create(int row, int col)
{
    int** Arr = new int*[row];
    for (int i = 0; i < row; i++)
    {
        Arr[i] = new int[col];
    }
    return Arr;
}
 
void Fill(int** Arr, int row, int col)
{
    for (int i = 0; i < row; i++)
    {
        for (int j = 0; j < col; j++)
        {
            Arr[i][j] = rand() % 100;
        }
    }
}
 
void Print(int** Arr, int row, int col)
{
    for (int i = 0; i < row; i++)
    {
        for (int j = 0; j < col; j++)
        {
            cout << Arr[i][j] << "\t";
        }
        cout << "\n";
    }
}
 
void FillOne(int* element, int size)
{
    for (int i = 0; i < size; i++)
    {
        element[i] = rand() % 100;
    }
}
 
void PrintOne(int* element, int size)
{
    for (int i = 0; i < size; i++)
    {
        cout << element[i] << "\t";
    }
    cout << "\t";
}
 
void AddRow(int** Arr, int row, int col, int position, int* element)
{
    int** tmpArr = new int*[row + 1];
    for (int i = 0, j = 0; i < row + 1; i++)
    {
        if (i == position)
        {
            tmpArr[i] = element;
        }
        else
        {
            tmpArr[i] = Arr[j];
            j++;
        }
    }
    delete[] Arr;
    row++;
    Arr = tmpArr;
 
    /*for (int i = 0; i < row; i++)
    {
        for (int j = 0; j < col; j++)
        {
            cout << Arr[i][j] << "\t";
        }
        cout << "\n";
    }*/
}
 
void Remove(int** Arr, int row)
{
    for (int i = 0; i < row; i++)
    {
        delete[] Arr[i];
    }
    delete[] Arr;
}
 
int main()
{
    int row = 5;
    int col = 5;
 
    int** Array = Create(row, col);
    Fill(Array, row, col);
    Print(Array, row, col);
    cout << endl;
 
    int* element = new int[col];
    FillOne(element, col);
    PrintOne(element, col);
    cout << endl << endl;
 
    AddRow(Array, row, col, 2, element);
    Print(Array, row + 1, col);
 
 
    //Remove(Array, row);
    return 0;
}
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
07.03.2016, 14:24
Ответы с готовыми решениями:

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

Сформировать двумерный динамический массив и добавить в него строку с заданным номером
2. Сформировать двумерный динамический массив. Добавить в него строку с заданным номером;

Как добавить элемент в двумерный динамический массив?
Уважаемые программисты, очень прошу помочь... Есть динамический массив, описанный как: ...

Двумерный динамический массив: добавить К столбцов в начало
1. Создайте двумерный динамический массив, имеющий m строк и n столбцов (m и n вводятся с...

2
nd2
3419 / 2799 / 1251
Регистрация: 29.01.2016
Сообщений: 9,426
07.03.2016, 15:33 2
Массив данных по ссылке передавай:
C++
1
void AddRow(int**& Arr, int row, int col, int position, int* element)
Добавлено через 1 минуту
Это, в функции, смысла не имеет, раз по значению передаёшь:
Цитата Сообщение от sergentiy Посмотреть сообщение
row++;
Если хочешь, чтобы и в main() изменилось, тоже по ссылке передавай.
1
0 / 0 / 0
Регистрация: 03.07.2015
Сообщений: 47
07.03.2016, 15:40  [ТС] 3
Спасибо! обидно что сам не додумался ))
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
07.03.2016, 15:40

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

Добавить строку в динамический массив
Помогите пожалуйста. Как добавить строку в динамический массив?

Как добавить строку в динамический массив?
Уважаемые форумчане подскажите как добавить строку в двумерный динамический массив - в нижнюю его...

Добавить новую строку в цикле в массив string[]
Добрый вечер. Есть примерно такая конструкция: string name = &quot;Имя&quot;; string strArr; ...

Вставить в двумерный массив новую строку, чтобы она была между другими
Помогите пожалуйста, как вставить в двумерный массив новую строку, чтобы она была между другими?

Добавить строку в двумерный массив
У меня есть такая задача, нужно добавить в массив в начало новую строку. Я создал второй массив,...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.