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

как обратиться к элементам массива через указатель? - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 12, средняя оценка - 4.83
ГузелькаС
5 / 5 / 0
Регистрация: 04.12.2011
Сообщений: 178
13.04.2013, 22:02     как обратиться к элементам массива через указатель? #1
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
// 2 зачет.cpp: определяет точку входа для консольного приложения.
//
 
#include "stdafx.h"
#include <iostream>
 
using namespace std;
 
int main()
{setlocale ( LC_ALL, "Russian" );
    int n,m; // размер массива
    cout << "Введите размерность массива n: ";
    cin >> n; // получение от пользователя размера массива
    cout <<" m: ";
    cin >>m; // получение от пользователя размера массива
 
     int **mas = new int* [n]; // Выделение памяти для массива
    for (int i = 0; i < n; i++)
    { mas[i]= new int[m];
    }
    
    for (int i = 0; i < n; i++)
    {
        for (int j = 0;j < m; j++)
        // Заполнение массива и вывод значений его элементов
        {cout<<"Введите элемент массива с индексом ["<<i+1<<"]["<<j+1<<"]: ";
        cin>>mas[i][j];}
    }
    
cout << "Mассив: "<<endl;
for (int i = 0; i < n; i++) 
{
    for (int j=0;j<m;j++)
        cout << *(mas)<<"  ";  //вот тут проблемка
    cout<<endl;
}
cout<<endl;
cout<<"Адрес массива: "<<&mas<<endl;
    delete [] mas; // очистка памяти
    system("pause");
    return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.04.2013, 22:02     как обратиться к элементам массива через указатель?
Посмотрите здесь:

Доступ к элементам структуры через указатель на структуру C++
C++ Разный доступ к элементам структуры через указатель
c++ как обратиться через указатель к данным, которые он адресует? C++
Обращение к элементам массива используя указатель C++
Обращение к элементам динамического массива через указатели C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
palva
 Аватар для palva
2373 / 1595 / 190
Регистрация: 08.06.2007
Сообщений: 6,364
Записей в блоге: 4
13.04.2013, 22:03     как обратиться к элементам массива через указатель? #2
C++
1
 cout << *(mas+j)<<"  ";  //вот тут проблемка
ГузелькаС
5 / 5 / 0
Регистрация: 04.12.2011
Сообщений: 178
13.04.2013, 22:07  [ТС]     как обратиться к элементам массива через указатель? #3
нет. адрес выводится. нужно элементы чтобы выводились
Excogit8er
2 / 2 / 0
Регистрация: 23.10.2012
Сообщений: 66
13.04.2013, 22:49     как обратиться к элементам массива через указатель? #4
Разыменовывать нужно дважды:
C++
1
cout << *(*(mas+i) + j) <<"  ";
ЗЫ Помимо "очистки памяти", тут ещё и утечка памяти.
Эта строка:
C++
1
delete [] mas; // очистка памяти
удаляет только массив указателей, нужен ещё один цикл, чтобы освободить память, выделенную здесь:
C++
1
2
3
for (int i = 0; i < n; i++)
    { mas[i]= new int[m];
    }
palva
 Аватар для palva
2373 / 1595 / 190
Регистрация: 08.06.2007
Сообщений: 6,364
Записей в блоге: 4
13.04.2013, 23:12     как обратиться к элементам массива через указатель? #5
Цитата Сообщение от Excogit8er Посмотреть сообщение
Разыменовывать нужно дважды:
Да, точно. Не разобрался, что здесь двойной массив. Тогда можно немного короче
C++
1
cout << mas[i][j] <<"  ";
Yandex
Объявления
13.04.2013, 23:12     как обратиться к элементам массива через указатель?
Ответ Создать тему
Опции темы

Текущее время: 05:18. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru