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

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

23.09.2014, 11:52. Показов 9541. Ответов 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
2223 / 1425 / 420
Регистрация: 16.05.2013
Сообщений: 3,642
Записей в блоге: 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
Ответ Создать тему
Новые блоги и статьи
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути
Programma_Boinc 01.01.2026
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути Сочетание глобально распределённой вычислительной мощности и инновационных. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru