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

Массивы, нужны комментарии к коду

06.12.2018, 00:07. Показов 1612. Ответов 5

Добрый вечер ребят!

Помогите описать функции пожалуйста

int **arr = new int*[m]; -
for(int i=0; i<m; i++) -
delete [] arr[i]; -
delete [] arr; -

какие задачи исполняют?
Спасибо заранее!

Добавлено через 14 минут
Как понял я

nt **arr = new int*[m]; - создается массив
for(int i=0; i<m; i++) - создается цикл
delete [] arr[i]; - удаления элемента массива
delete [] arr; - удаление массива

Прав ли я?
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
06.12.2018, 00:07
Ответы с готовыми решениями:

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

Нужны комментарии к коду
int bestStr(char** file, int numstr) { int iBest = -1, bestwords = 0; for (int i = 0; i &lt;...

Нужны комментарии к коду
pair&lt;bool, array&lt;int, 81&gt;&gt; SOL(const char* inp) { array&lt;int, 81&gt; ANS; int* TAB = ANS.data();...

Нужны комментарии к коду
#include &lt;iostream&gt; #include &lt;cmath&gt; using namespace std; //ЗАДАЧА #14 void...

5
1172 / 833 / 359
Регистрация: 26.02.2015
Сообщений: 3,743
06.12.2018, 00:16 2
Если сдать преподавателю, то думаю, что прав.
1
11 / 1 / 0
Регистрация: 26.11.2018
Сообщений: 61
06.12.2018, 12:48  [ТС] 3
int **arr = new int*[m]; -Что обозначают "**" и "*" ?
delete [] arr[i]; - удаление элемента масива - Что в этом случаи элемент [i]?

код

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
#include <iostream>
#include <ctime>
#include <cstdlib>
#include <windows.h>
 
using namespace std;
int main()
{
    int m = 10;
    int n = 10;
 
            cout << "Masivs: \n\n";
 
    int **arr = new int*[m];
    for(int i=0; i<m; i++)
    {
        arr[i] = new int[n];
        for(int j=0; j<n; j++)
        {
            arr[i][j] = rand()%90+10;
            cout << arr[i][j] << " ";
        }
            cout << "\n";
    }
 
            cout << "\nMasivs + 90 gradi: \n\n";
 
    for(int i=0; i<n; i++)
    {
        for(int j=m-1; j>=0; j--)
        {
            cout << arr[j][i] << " ";
        }
            cout << "\n";
    }
 
    for(int i=0; i<m; i++)
        delete [] arr[i];
    delete [] arr;
}
0
10 / 9 / 2
Регистрация: 19.02.2018
Сообщений: 379
06.12.2018, 13:13 4
Я делал динамический массив в виде класса, так удобнее, в destructoid освобождаем память.
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
#include<iostream> // std::cout 
#include<ctime>
#include<cstdio> 
#include<string> 
#include<windows.h>
 
 
using namespace std;
 
int random(int x, int y) { return x + rand() % (y - x + 1); };
 
class arr {
    int *p; int size; int x; int y;
public:
    arr(int count, int x, int y) {
        size = count;
        p = new int[size];
        for (int i = 0; i < size; i++)
            p[i] = random(x, y);
    }
    void show() {
        for (int i = 0; i < size; i++)
            cout << p[i] << " ";
        cout << "\n" << endl;
    }
    void push_back(int value) {
        int *newarr = new int[size + 1];
        for (int i = 0; i < size; i++) { newarr[i] = p[i]; }
        newarr[size] = value;
        size++;
        delete[] p;
        p = newarr;
    }
    void add(int value, int a) {
        int *newarr = new int[size + 1];
        size++;
        for (int i = 0; i < size; i++)
        {
            if (i == a)
            {
                newarr[i] = value;
            }
            if (i < a)
            {
                newarr[i] = p[i];
            }
            if (i > a)
            {
                int j;
                j = p[i - 1];
                newarr[i] = j;
            }
        }
        delete[] p;
        p = newarr;
        newarr = nullptr;
    }
 
    ~arr() {
        delete[] p;
        cout << "del" << endl;
        p = nullptr;
    }
};
 
int main(int args, char* argv[]) {
    setlocale(LC_ALL, "ru");
    arr a(5, 1, 3); // создать массив на 5 ячеек, случайные числа от 1 до 3
    a.show();
    a.push_back(25);
    a.show();
    a.add(1000, 3); //добавить элемент по индексу 
    a.show();
 
    return 0;
    system("pause");
}
0
11 / 1 / 0
Регистрация: 26.11.2018
Сообщений: 61
06.12.2018, 13:31  [ТС] 5
Цитата Сообщение от Sklifasovsky Посмотреть сообщение
delete [] arr[i];
Как я понимаю то это удаление строки?
0
679 / 4401 / 262
Регистрация: 11.08.2016
Сообщений: 2,907
06.12.2018, 14:30 6
Лучший ответ Сообщение было отмечено Sklifasovsky как решение

Решение

nt **arr = new int*[m]; - создание массива указателей на указатели на целые число
for(int i=0; i<m; i++) - запуск цикла от 0 до m-1
delete [] arr[i]; - Освобождение памяти, выделенной под динамический массив, являющийся элементом массива
delete [] arr; - Освобождение памяти, выделенной под динамический массив
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
06.12.2018, 14:30
Помогаю со студенческими работами здесь

Нужны комментарии к коду
#include&lt;iostream.h&gt; #include&lt;math.h&gt; int maximal(int n,double R0); void main(){ int...

Нужны комментарии к коду
Доброго времени суток. Нашел такой код с++ // таблица замен byte Tab_Z = { ...

Нужны комментарии к коду
меня интересуют вот эти три строки ,что они делают в данном коде.какой их тут смысл. C.pSet =...

Нужны комментарии к коду
что здесь происходить double *x=new double ; double **b=new double *; for(i=0;i&lt;n;i++) ...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru