Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/55: Рейтинг темы: голосов - 55, средняя оценка - 4.75
0 / 0 / 0
Регистрация: 03.03.2017
Сообщений: 21

Массив указателей на массивы

03.02.2018, 12:49. Показов 11527. Ответов 3

Студворк — интернет-сервис помощи студентам
Задание: инициализировать массив из 10 указателей. Каждый из 10 этих указателей должен будет указывать на массив из 10 чисел int. Нашел следующий вариант записи:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <iostream>
using namespace std;
int main ( )
{
    const int n=10;
    int* ap[n];
    for(int j=0;j<n;j++)
        *(ap+j)=new int[n];
    for(int j=0;j<10;j++)
        for(int k=0;k<10;k++)
            *(*(ap+j)+k)=k*10;
    for(int j=0;j<10;j++)
        for(int k=0;k<10;k++)
            cout<<*(*(ap+j)+k)<<endl;
 
  return 0;
}
Не могу понять смысл 8 и 11 строк. Например, 8 строка: *(ap+j)=new int[n] - запись такая, как будто мы разыменовываем указатель, сдвинутый на j, и пытаемся применить к полученной конструкции оператор new. Т.е. не к указателю, а к тому, на что он указывает.

Просветите пожалуйста
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
03.02.2018, 12:49
Ответы с готовыми решениями:

Массив строк как массив указателей на массивы чаров
Я всё правильно сделал? char* Files; Files = &quot;AHEAD&quot;; Files = &quot;LEFT&quot;; Files = &quot;RIGHT&quot;; Files = NULL; int searchFile()...

Создание массивов указателей на массивы указателей
Помогите в решении задачи: создал массив указателей на массивы указателей на строки, но компилятор ругается на то что не может...

Массив указателей на массив строк и сортировка массива указателей
Добрый день. Поступил вопрос. Есть задача. У нас встроенный массив char mass;.Мы вводим строки до тех пор, пока не будет заполнен массив...

3
277 / 226 / 93
Регистрация: 27.06.2016
Сообщений: 639
03.02.2018, 13:01
Лучший ответ Сообщение было отмечено smbdy как решение

Решение

C++
1
*(ap+j) = new int[n];
равносильно
C++
1
ap[j] = new int[n];
C++
1
*(*(ap+j)+k)=k*10;
равносильно
C++
1
ap[j][k] = k * 10;
1
Комп_Оратор)
Эксперт по математике/физике
 Аватар для IGPIGP
9007 / 4708 / 630
Регистрация: 04.12.2011
Сообщений: 14,003
Записей в блоге: 16
03.02.2018, 23:05
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
#include <iostream>
using namespace std;
 
int main(int argc, char* argv[])
{
const int sz=10;
int array_arreev[sz][sz];//это массив масивов
int (*pAr[sz])[sz];//этомассив указателей на массив
for(int i=0; i<sz; ++i){
pAr[i]=&(array_arreev[i]);//присваиваем каждому указателю адрес массива
for(int j=0; j<sz; ++j){
array_arreev[i][j]=i*j+j;
}
}
 
for(int i=0; i<sz; ++i){
for(int j=0; j<sz; ++j){
cout<<(*pAr[i])[j]<<' ';
}
cout<<endl;
}
cout<<endl;
system("pause");
return 0;
}
1
 Аватар для Avaddon74
571 / 353 / 133
Регистрация: 15.09.2017
Сообщений: 1,239
03.02.2018, 23:16
Цитата Сообщение от smbdy Посмотреть сообщение
8 строка: *(ap+j)=new int[n] - запись такая, как будто мы разыменовываем указатель, сдвинутый на j, и пытаемся применить к полученной конструкции оператор new. Т.е. не к указателю, а к тому, на что он указывает.
Так оно и есть, что такое указатель, это адрес, к нему также можно прибавлять и вычитать
Когда я вам говорю, следующий дом по улице Гагарина после 10-го, вы какой дом будете иметь ввиду? 12-ый! т.к. они на одно стороне, так же и с указателями работает
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
03.02.2018, 23:16
Помогаю со студенческими работами здесь

Указатели и массивы. Индексация с помощью указателей. Передача массивов в функции. Динамические массивы (обработка матриц)
Для каждого элемента , bij, i= 1,...,n , j=1,...,n определяется свой многоугольник местонахождением соответствующего элемента aij (см....

Создать специфицированный шаблон функции, принимающей массив указателей на char и количество самих указателей
Задача: создать специфицированный шаблон функции, принимающей массив указателей на char и количество самих указателей. Вернуть адрес...

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

Массив из указателей на масив из указателей на массив из int)
Доброго времени суток! Возникла проблема - как на C++ создать массив из указателей на массив из указателей на int? То есть массив из n...

массивы указателей,указатели на массивы
Понимаю что тема эта изжевана, но я ещё жую.Хочу, чтобы усвоилось. допустим есть QStringList a; a.append(&quot;мамa&quot;); ...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru