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

Косвенное обращение к методам. Освобождение памяти,выделенной под двумерный динамический массив - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Не могу определить элементарной ошибки http://www.cyberforum.ru/cpp-beginners/thread926329.html
Почему-то значение summ (сумма правильных ответов) иногда не правильно обрабатывается (не смог выявить закономерности при каких условиях), хотя его изменение стоит четко после условия о_0 #include <iostream> #include <conio.h> #include <time.h> using namespace std; int main() { setlocale(LC_ALL, "rus");
C++ типы указателей Подбельский пример из книжки Подбельского #include <iostream.h> #include <iomanip.h> int main(){ unsigned long L=0x12345678L; char *cp = (char *) &L; int *ip = (int *) &L; long *lp = (long *) &L; cout<<hex; cout<<"Address L= "<<&L<<"\n"; http://www.cyberforum.ru/cpp-beginners/thread926324.html
C++ Написать программу поиска знаков пунктуации в строках
Задача: Написать программу поиска знаков пунктуации в строках. Программа должна позволить ввести символьную строку, содержащую знаки пунктуации, и вывести ту же строку, но уже без знаков пунктуации. На данный момент, у меня получилось, лишь вывести на экран все знаки пунктуации без самого текста строки. Но не получается сделать наоборот, помогите пожалуйста. Вот мои жалкие потуги: #include...
C++ Задача на составление списка
Всем привет,нужна помощь. Написать на алгоритмическом языке С++ программу составления списка ( a (b (c ) d ( ( e ( ( f ) ) ) ) ) ) в виде 1 2 3 2 3 4 5 6 5 4 3 2 1 0 списочных ячеек и вывести результат, показывая связи между элементами списка. Пример. Для списка ( (b c) a b c) списочные ячейки будут выглядеть следующим образом
C++ Описать класс "Массив" http://www.cyberforum.ru/cpp-beginners/thread926292.html
1.Описать класс "Массив". Методы массива: конструктор с одним параметром - длина массива; ввод и вывод элементов массива; проверка, является ли массив упорядоченным по убыванию; проверка, является ли массив упорядоченным по возрастанию; включение произвольного элемента в массив с сохранением упорядоченности. 2.Объявить массив, ввести значения, проиллюстрировать использование методов.
C++ getline() #include <string> #include <iostream> using namespace std ; int main() { string s; cout << "Vvedite frazu: "; getline(cin,s); подробнее

Показать сообщение отдельно
newlam
 Аватар для newlam
2 / 2 / 0
Регистрация: 06.05.2013
Сообщений: 19
20.07.2013, 22:35     Косвенное обращение к методам. Освобождение памяти,выделенной под двумерный динамический массив
Вопрос 1.
В задании необходимо проиллюстрировать косвенный способ обращения к методам.
Искал в интернете. Нашел :
C++
1
2
3
4
Array *s, obj(n, m);
    s =& obj;
    s->set();
    s->print();
Где Array - это название класса (class Array ...)

Также видел
C++
1
2
3
4
5
Array connect;
Array * access;
access =&connect;
access->Set();
access->Print();
Вообще читал, что косвенное обращение это "->"
Можно сделать так:
C++
1
2
3
4
Array * access=new Array;
access->Set();
access->Print();
delete[] access;
Как правильно будет проиллюстрировать косвенный способ обращения к методам? Может как-то иначе?

Вопрос 2.
В необходимо создать двумерный динамический массив , с помощью функции calloc. Вот как создал :
C++
1
2
3
4
5
6
7
8
9
 Array::Array() {
        cout<<"Введите количество строк : "<<endl;
        cin>>a;
        cout<<"Введите количество столбцов : "<<endl;
        cin>>b;
        mas=((int**)calloc(a,sizeof(int*)));
        for (int i=0;i<a;i++) {
            mas[i]=((int*)calloc(b,sizeof(int)));
        }
где mas- массив, объявленный в public класса Array (public: int ** mas
Чтобы освободить память, выделенную под массив, нужно использовать
C++
1
for(int i=0;i<a;i++) free(mas[i]);
До этого я пользовался таким выделением памяти:
C++
1
2
3
4
int ** mas=new int*[10];
    for (int i=0;i<10;i++) {
        mas[i]=new int[10];
    }
высвобождение :
C++
1
2
3
    for (int i=0;i<10;i++) {
        delete mas[i]; }
    delete[] mas;
Вопрос, правильно ли высвобождается память в обоих случаях?
Какой удобнее?
И зачем после delete ставятся пустые квадратные скобки (delete[])?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 10:36. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru