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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 23, средняя оценка - 4.70
stawerfar
141 / 55 / 4
Регистрация: 14.12.2010
Сообщений: 347
Записей в блоге: 1
#1

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

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

Всем привет!Сразу к делу. Я решил по лучше разобраться в указателях и столкнулся с таким вопросом
как реализовать такую вещь именно так как я хочу
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;
}
Я знаю что есть альтернатива с переменными указателями, НО меня интересует именно этот случай как создать указатель на двумерный массив(или выше) имя которого является "указателем - константой". Кто значет тот поймет о чём я говорю.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
-=ЮрА=-
17.02.2012, 16:05     Указатель на двумерный массив и выше
  #21

Не по теме:

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

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

Не по теме:

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

Nameless One
17.02.2012, 17:00
  #25

Не по теме:

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

HardMorg
3 / 26 / 3
Регистрация: 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
вы уж ничего плохого не подумайте, я просто в целях повышения знаний

п.с. кто может кинуть ссылку почитать про это все
Nameless One
Эксперт С++
5769 / 3418 / 255
Регистрация: 08.02.2010
Сообщений: 7,446
17.02.2012, 17:19     Указатель на двумерный массив и выше #27
Цитата Сообщение от HardMorg Посмотреть сообщение
а если у нас размер массива изменится? и смысл нам передавать тогда 2,2
я привел тот код просто для примера, так что не надо от него много требовать
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.02.2012, 20:58     Указатель на двумерный массив и выше
Еще ссылки по теме:
C++ Двумерный массив через указатель
Указатель на двумерный массив указателей C++
Указатель на двумерный массив char С.Прата C++
C++ Функция, возвращающая указатель на двумерный массив
Как обьявить указатель на двумерный массив? C++

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

Или воспользуйтесь поиском по форуму:
stawerfar
141 / 55 / 4
Регистрация: 14.12.2010
Сообщений: 347
Записей в блоге: 1
17.02.2012, 20:58  [ТС]     Указатель на двумерный массив и выше #28
Спасибо всем за участие в беседе. Я думаю будет логично мне сказать что Вы каждый по своему правы и предоставили нужную А САМОЕ ГЛАВНОЕ ПОЛЕЗНУЮ ИНФОРМАЦИЮ ОБ УКАЗАТЕЛЯХ. Пускай даже если она выходила за рамки данной темы, а точнее моего вопроса.
Yandex
Объявления
17.02.2012, 20:58     Указатель на двумерный массив и выше
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru