Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.83/41: Рейтинг темы: голосов - 41, средняя оценка - 4.83
150 / 64 / 8
Регистрация: 14.12.2010
Сообщений: 347
Записей в блоге: 1
1

Указатель на двумерный массив и выше

17.02.2012, 14:18. Показов 8211. Ответов 27
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Всем привет!Сразу к делу. Я решил по лучше разобраться в указателях и столкнулся с таким вопросом
как реализовать такую вещь именно так как я хочу
C++
1
2
3
4
5
6
7
8
9
10
int main(void)
{
    
    
    int mes[2][2] = {13,134,11,22};
    int ? pp = mes; //?? 
    
    system("pause");
return 0;
}
Я знаю что есть альтернатива с переменными указателями, НО меня интересует именно этот случай как создать указатель на двумерный массив(или выше) имя которого является "указателем - константой". Кто значет тот поймет о чём я говорю.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
17.02.2012, 14:18
Ответы с готовыми решениями:

указатель на двумерный массив
Делая игру морской бой, я столкнулся с 1-ой проблемой: void place_ships(char &(&(map+13)+29))...

Указатель на двумерный массив
Как сделать то же самое с двумерным массивом? Как работать с двумерными или n- мерными массивами...

Указатель на двумерный массив
хочу заменить вот такую запись: fs.read((char*)&size_struct, sizeof(int));...

Указатель на двумерный массив
Возможно ли создать указатель на двумерный массив для вызова его в функции?

27
-=ЮрА=-
17.02.2012, 16:05     Указатель на двумерный массив и выше
  #21

Не по теме:

fasked, да да у silent_1991, действительно указатель на массв 2х2, с ним погарячился, а вот Nameless One, советую пересмотреть свой код...

1
Заблокирован
Автор FAQ
17.02.2012, 16:10 22
Nameless One, у тебя было написано
Цитата Сообщение от Nameless One Посмотреть сообщение
int ** const pp = (int** const) &mes[0];
, ну вот смотри что получаем
Миниатюры
Указатель на двумерный массив и выше  
1
Эксперт С++
5828 / 3479 / 358
Регистрация: 08.02.2010
Сообщений: 7,448
17.02.2012, 16:23 23
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
ну вот смотри что получаем
это потому, что mes в данном случае должнен быть динамическим
1
-=ЮрА=-
17.02.2012, 16:54
  #24

Не по теме:

Nameless One, На кой чёрт нужен указатель на динамический массив, если он сам по себе идёт как указатель???:scratch:

1
Nameless One
17.02.2012, 17:00
  #25

Не по теме:

-=ЮрА=-, а я откуда знаю? Это, если я правильно понял, требование ТС, так что его и спрашивай.
Единственное отличие в данном случае, что наш указатель - константный, так что не получится изменить его значение (например, инкрементировать или заставить указывать на другую переменную). Зачем это надо делать - другой вопрос

1
3 / 26 / 9
Регистрация: 29.08.2010
Сообщений: 204
17.02.2012, 17:18 26
Цитата Сообщение от Nameless One Посмотреть сообщение
моего кода вообще не было, единственный код в топике - твой, который вообще ортогонален тому, что я хотел сказать ТС'у. Нельзя просто так использовать несовместимые типы указателей.
Вот тебе полностью рабочий код:
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <stdio.h>
#include <stdlib.h>
 
void addOneAndPrint(int (* const p)[2], size_t n, size_t m)
{
    int i, j;
 
    for(i = 0; i < n; ++i, putchar('\n'))
    for(j = 0; j < m; ++j)
        p[i][j] += 1, printf("%-4d", p[i][j]);
}
 
int main(void)
{
    int foo[2][2] = {{1,2}, {3,4}};
        
    int (* const pfoo)[2] = foo;
        
    addOneAndPrint(pfoo, 2, 2);
        
    exit(0);
}
И да, ты хоть читал стартовый пост?
а если у нас размер массива изменится? и смысл нам передавать тогда 2,2
вы уж ничего плохого не подумайте, я просто в целях повышения знаний

п.с. кто может кинуть ссылку почитать про это все
1
Эксперт С++
5828 / 3479 / 358
Регистрация: 08.02.2010
Сообщений: 7,448
17.02.2012, 17:19 27
Цитата Сообщение от HardMorg Посмотреть сообщение
а если у нас размер массива изменится? и смысл нам передавать тогда 2,2
я привел тот код просто для примера, так что не надо от него много требовать
1
150 / 64 / 8
Регистрация: 14.12.2010
Сообщений: 347
Записей в блоге: 1
17.02.2012, 20:58  [ТС] 28
Спасибо всем за участие в беседе. Я думаю будет логично мне сказать что Вы каждый по своему правы и предоставили нужную А САМОЕ ГЛАВНОЕ ПОЛЕЗНУЮ ИНФОРМАЦИЮ ОБ УКАЗАТЕЛЯХ. Пускай даже если она выходила за рамки данной темы, а точнее моего вопроса.
0
17.02.2012, 20:58
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
17.02.2012, 20:58
Помогаю со студенческими работами здесь

Указатель на двумерный массив
Здравствуйте. Программирую в Visual Studio 2017, на скриншоте собственно сама проблема. Как все так...

Указатель на двумерный массив
Допустим, у меня есть функция: void A(float **b) { b=1; } Тогда почему выдает ошибку при...

Указатель на двумерный массив
A эквивалентно *(*(A+i)+j). Просто давайте допустим, что у нас матрица A. Как вычислить допустим А?

Указатель на двумерный массив
#include &lt;iostream&gt; using namespace std; int a = { 0 }, b = { 1 }; void foo(int val) { int...


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

Или воспользуйтесь поиском по форуму:
28
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru