Указатели и многомерные массивы.


При самостоятельном желании понять тему " Указатели и многомерные массивы. " вам поможет наш ресурс. Для вас наши специалисты подготовили материал, изучив который вы будете разбираться в ней уровне профессионала. А если у вас останутся вопросы, то задать их вы сможете прямо на сайте написав в чат онлайн-консультанта.

оформить заявку

Слишком сложно? Тогда запросите консультацию специалиста!

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

ознакомиться с условиями

Краткое пояснение: Указатели и многомерные массивы.

1. Многомерный массив – это массив, элементами которого служат массивы.

Пример:

int a[4][5] – это массив из 4-х строк и 5-ти столбцов.

Инициализация многомерных массивов выполняется аналогично инициализации одномерных массивов.

Пример:

//Инициализированы все элементы массива

int a[3][4] = {{11,22,33,44},{55,66,77,88},{99,110,120,130}

int b[3][4] = {{1},{2},{3}} /*Инициализированы первые элементы каждой строки*/

int c[3][2] = {1,2,3,4,5,6} /*Инициализированы все элементы массива

a[1][2] – доступ к элементу в 1-ой строке и во 2-м столбце через индексы.

 

2. Динамические двумерные массивы

Для создания динамического многомерного массива необходимо указать в операции new все его размерности (самая левая размерность может быть переменной).

Пример:

int nstr = 5:

int ** m = (int **) new int [nstr][10];

 

Более универсальный и безопасный способ выделения памяти под двумерный массив, когда обе его размерности задаются на этапе выполнения программы, приведен ниже:

int nstr, nstb;

cout << " Введите количество строк и столбцов: ";

cin >> nstr >> nstb;

int **a = new int *[nstr]; // 1

for (int i = 0; i < nstr; i++) // 2

a[i] = new int [nstb]; // 3

В операторе 1 объявляется переменная типа «указатель на указатель на int» и выделяется память под массив указателей на строки массива (количество строк — nstr).

В операторе 2 организуется цикл для выделения памяти под каждую строку массива.

В операторе 3 каждому элементу массива указателей на строки присваивается адрес начала участка памяти, выделенного под строку двумерного массива. Каждая строка состоит из nstb элементов типа int.

*(*(a + 2) + 6) - доступ к элементу в 2-ой строке и во 6-м столбце через указатели.

 

Пример:

Заполнить двумерный массив размером n x m натуральными числами в виде «змейки». Например, при n=3, m=4:

1 2 3 4

8 7 6 5

9 10 11 12

 

 

#include <iostream>

using namespace std;

 

 

void main()

{

int n,m,i,j;

cout<<”n m: “;

cin>>n>>m;

int **a;

a=new int *[n]; //задаем массив из n элементов, каждый из которых является адресом строки

for (i=0;i<n;i++)

a[i]=new int[m]; //выделяем память под каждую строку массива

int k=1;

 

for (i=0;i<n;i++)

if (i%2!=0)

for (j=m-1;j>=0;j--)

{

*(*(a+i)+j)=k;

k++;

}

else

for (j=0;j<m;j++)

{

*(*(a+i)+j)=k;

k++;

}

 

for (i=0;i<n;i++)

{

for (j=0;j<m;j++)

cout<<*(*(a+i)+j)<<” ”;

cout<<endl;

}

for (i=0;i<n;i++)//освобождаем память для каждой строки

delete[] a[i];

delete []a;//освобождаем память для массива указателей на строки

 

}

Окно вывода:

 

Использованная литература.

o Т.А. Павловская «С/С++ Программирование на языке высокого уровня».

o Викентьева О.Л., Полякова О.А. «Программирование на языке C++»


Конечно, для полного рассмотрения вопроса 'Указатели и многомерные массивы.', приведенной информации не достаточно, однако чтобы понять основы, её должно хватить. Если вы изучаете эту тему, с целью выполнения задания заданного преподавателем, вы можете обратится за консультацией в нашу компанию. В нашей команде работает большой состав специалистов, которые разбираются в изучаемом вами вопросе на экспертном уровне.

Хм, так же просматривали

Заказ

ФОРМА ЗАКАЗА

Бесплатная консультация

Наша компания занимается написанием студенческих работ. Мы выполняем: дипломные, курсовые, контрольные, задачи, рефераты, диссертации, отчеты по практике, решаем тесты и задачи, и многие другие виды заданий. Чтобы узнать стоимость, а так же условия выполнения работы заполните заявку на этой странице. Как только менеджер увидит ваше сообщение, он сразу же свяжется с вами.

Этапность

СОПРОВОЖДЕНИЕ КЛИЕНТА

Получить работу можно всего за 4 шага

01
Оставляете запрос

Оформляете заказ работы, заполняя форму на сайте.

02
Узнаете стоимость

Менеджер оценивает сложность. Узнаете точную цену.

03
Работа пишется

Оплачиваете и автор приступает к выполнению задания.

04
Забираете заказ

Получаете работу в электронном виде на вашу почту.

Услуги

НАШ СЕРВИС

Что мы еще делаем?

icon
Курсовые работы

от 1800 рублей

ПОДРОБНЕЕ
icon
Семестровые работы

от 1480 рублей

ПОДРОБНЕЕ
icon
Домашние работы

от 180 рублей

ПОДРОБНЕЕ
icon
Сочинения

от 280 рублей

ПОДРОБНЕЕ
icon
Решение тестов

от 320 рублей

ПОДРОБНЕЕ
icon
Написание текста

от 80 рублей

ПОДРОБНЕЕ