Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.85/47: Рейтинг темы: голосов - 47, средняя оценка - 4.85
4 / 4 / 1
Регистрация: 30.11.2013
Сообщений: 108

Адрес элемента динамического массива

23.09.2014, 11:52. Показов 9809. Ответов 28
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте, создан динамический массив, нужно вычислить адрес какого-нибудь элемента (зная адрес нулевого). В автоматическом знаю как делать: если указатель на нулевой элемент массива равен 1000, а сам массив int a[3][7], и мне нужно вычислить адрес элемента *(*(a+1)+5). 5*sizeof(int) = 20, 1*sizeof(int)*7 = 28. => адрес нужного элемента 1000+28+20 = 1048. Как по такому же принципу выяснить адрес элемента в динамическом двумерном массиве?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
23.09.2014, 11:52
Ответы с готовыми решениями:

Убедиться, что адрес первого элемента массива и адрес, хранящийся в указатели на этот массив равны.
Убедиться, что адрес первого элемента массива и адрес, хранящийся в указатели на этот массив - равны.

Не получается адрес динамического двумерного массива передать, как аргумент функции
/* Лабораторная работа №3 Во всех вариантах необходимо написать три функции, которые будут вызываться из функции main(). Первая...

Как правильно указать начальный адрес для динамического (обычного) массива?
Предположим у меня есть динамически выделяемый массив int *ptr0 = new int; Данный массив мне нужно разместить по конкретно указанному...

28
Заблокирован
23.09.2014, 12:31
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от Scrooge McDuck Посмотреть сообщение
Tulosba, есть массив int A[3][3]; как получить указатель на a[1][2] элемент ?
чушь спросил

BboyBlackjack, вот твоя арифметика
C++ (Qt)
1
2
int a[3][3] = { 0, 1, 2, 3, 4, 5, 6, 7, 8 };
int* x = (&a[1][1])+1; //указатель на элемент a[1][2] ! //ПОЧЕМУ ТУТ ИНКРЕМЕНТ НЕ РАБОТАЕТ?
0
:)
Эксперт С++
4773 / 3267 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
23.09.2014, 12:33
Цитата Сообщение от Scrooge McDuck Посмотреть сообщение
есть массив int A[3][3]; как получить указатель на a[1][2] элемент ?
Элементарно. Формула же указана
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream>
using namespace std;
 
int main() {
    
    int a[3][3];
 
    const int i = 1;
    const int j = 2;
    
    cout << &a[i][j] << endl;   
    
    cout << (*(a+i)+j) << endl;
    
    return 0;
}
http://ideone.com/cjoVbA
0
Заблокирован
23.09.2014, 12:38
Цитата Сообщение от Scrooge McDuck Посмотреть сообщение
int a[3][3] = { 0, 1, 2, 3, 4, 5, 6, 7, 8 };
int* x = (&a[1][1])+1; //указатель на элемент a[1][2] ! //ПОЧЕМУ ТУТ ИНКРЕМЕНТ НЕ РАБОТАЕТ?
А теперь вопрос от меня к Tulosba, а вот как объявить указатель для не под элемента, а для элемента верхнего уровня, допустим для a[2] и как вытащить указатель из массива для сохранения на a[2] ? То есть на последнюю тройку элементов

Добавлено через 2 минуты
Пишу:
C++
1
2
int a[3][3] = { 0, 1, 2, 3, 4, 5, 6, 7, 8 };
int* x[3] = &a[2];
получаю:
error C2440: 'initializing' : cannot convert from 'int (*)[3]' to 'int *[3]'
0
Эксперт по математике/физикеЭксперт С++
 Аватар для Ilot
2226 / 1428 / 420
Регистрация: 16.05.2013
Сообщений: 3,651
Записей в блоге: 6
23.09.2014, 12:43
Tulosba, верно. Я что-то перемудрил. Каюсь.
0
Эксперт С++
4986 / 3093 / 456
Регистрация: 10.11.2010
Сообщений: 11,170
Записей в блоге: 10
23.09.2014, 12:46
Scrooge McDuck,
C++
1
int (*x)[3] = &a[2];
Указатель на массив и массив указателей - разные вещи.
1
Заблокирован
23.09.2014, 12:50
Цитата Сообщение от castaway Посмотреть сообщение
int (*x)[3] = &a[2];
Цитата Сообщение от castaway Посмотреть сообщение
Указатель на массив и массив указателей - разные вещи.
тфу ты блин, точно
0
:)
Эксперт С++
4773 / 3267 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
23.09.2014, 12:50
Цитата Сообщение от Scrooge McDuck Посмотреть сообщение
как объявить указатель для не под элемента, а для элемента верхнего уровня
Оно?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <iostream>
using namespace std;
 
int main() {
    
    int a[3][3] = { 0, 1, 2, 3, 4, 5, 6, 7, 8 };
    
    int (*x)[3] = &a[2];
    
    for(int i=0;i<3; ++i)
        cout << (*x)[i] << endl;
    
    return 0;
}
http://ideone.com/eipGDS
1
Заблокирован
23.09.2014, 12:58
Цитата Сообщение от Tulosba Посмотреть сообщение
Оно?
да уже ответили
Цитата Сообщение от Tulosba Посмотреть сообщение
for(int i=0;i<3; ++i)
* * * * cout << (*x)[i] << endl;
слушай, ну ты меня за нуба - то не держи
0
23.09.2014, 13:03

Не по теме:

Цитата Сообщение от Scrooge McDuck Посмотреть сообщение
слушай, ну ты меня за нуба - то не держи
так вопросы нубские не задавай, да 8-)

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
23.09.2014, 13:03

Увеличение элемента динамического массива
Пользователь задает динамический массив из трех элементов. Как вывести на экран этот же массив,только третий элемент будет на 1 больше...

Удаление элемента из динамического массива
Приветствую зашедших! Мне по условию дан динамический массив int элементов, в котором надо уничтожить ПЕРВЫЙ встречный 0. Подскажите, как...

Добавление и удаление элемента динамического массива
Подскажите какие существую способы добавления и удалеия элемента одномерного динамического массива(переопределяя размер массива)....

Добавление элемента в начало динамического массива
Господа подскажите пожалуйста ошибку в коде. Не верно работает добавление нового элемента в начало динамического массива. Не могу допетрить...

Удаление элемента динамического массива справа
Нужно удалить последний структурный элемент динамического массива. помогите пожалуйста никак не получается сделать эту функцию. Это...


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

Или воспользуйтесь поиском по форуму:
29
Ответ Создать тему
Новые блоги и статьи
Doom для терминала без стрельбы и монстров. 3D Raycasting на ascii.
dcc0 05.07.2026
Попросил нейронную сеть deepai. org написать рейкастинг 3D с библиотекой ncurses для Linux. Чтобы можно было ходить на стрелочки. Чтобы стены были отрисованы символами. Справилась. Первый вариант. . .
Установка статуса документа по условию
Maks 05.07.2026
Алгоритм из решения ниже реализован на нетиповом документе "НарядПутевка" разработанного в КА2. Задача: в табличной части "Материалы" документа при записи автоматически устанавливать статус. . .
Сезонность и суточность закисления почв
anaschu 04.07.2026
200 часов это все равно моловато. Есть ситуации, но нестандартные, когда смена происходит за 5 лет. Но обычно это 50 лет и более. Наверное, закисление почвы происходит сезонно в средней. . .
В чем ценность человеческого опыта в глобальном смысле?
kumehtar 03.07.2026
Возможно, ценность человека не в том, что он однажды достигает мудрости, а в том, что он становится носителем карты пути. Он знает не только истину, но и последовательность внутренних изменений,. . .
интеграция AnyLogic с самописным REST API и переход на Odoo
anaschu 03.07.2026
Успешная интеграция AnyLogic с самописным REST API и переход на промышленную Odoo WMS Сегодня проделал огромный путь от простой симуляции физических процессов до построения полноценной. . .
Поиск всех путей на ориентированном графе. Linux
dcc0 02.07.2026
Переработка старого кода из моей статьи. Через несколько переработок от PHP кода к C89 (надеюсь, 89). Но довольно запутанно получилось. Код для Linux. Но если убрать time и то, что с ним. . .
Сам себя обучал rest api
anaschu 02.07.2026
Педагогический лайфхак: Почему чистый REST API для ученика намного круче, чем готовые библиотеки Когда мы отказались от капризного JAR-файла AnyLogic и переписали код на стандартный HttpClient,. . .
rest api anylogic - выполнение модели на своём русском сайте
anaschu 02.07.2026
Как подружиться с AnyLogic Cloud API, победить провайдеров и развернуться Java-бэкенд в Docker на бесплатном хостинге: Двухдневный лог борьбы Всем привет! Хочу поделиться свежим (и довольно. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru