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

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

Войти
Регистрация
Восстановить пароль
 
iTD
0 / 0 / 0
Регистрация: 14.03.2012
Сообщений: 29
#1

Динамический двумерный массив (получить адрес первого элемента первой строки) - C++

06.12.2012, 21:57. Просмотров 699. Ответов 4
Метки нет (Все метки)

есть двумерный массив

C++
1
2
3
4
5
6
7
........
// объявление двумерного динамического массива
    int **matrix=new int* [n];
    for(int count=0; count < n; count++)
        matrix[count]=new int[m];
    //  где matrix  – массив указателей на выделенный участок памяти под массив целых чисел  типа int
.........
как мне можно получить адрес на первый элемент первой строки (на начало массива)? нужно все это для работы во встроеном _asm. мучаюсь весь день Со статическим двумерным массивом и динамическим одномерным все работает, т.е. получаю правильный адресс и достаю оттуда значение.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.12.2012, 21:57
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Динамический двумерный массив (получить адрес первого элемента первой строки) (C++):

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

Вставка нового элемента в двумерный динамический массив дополнить код - C++
Здравствуйте ребята, опять нужна помощь по вставке элементов в двумерный динамический массив. А именно вставить рядок заполненный числами...

Добавление строки в двумерный динамический массив (исправить ошибки) - C++
Выкладываю лаб. Помогите исправить ошибки в функции с добавлением строки в двумерный динамический массив , уже противно смотреть эту на...

Динамический двумерный массив - пояснить некоторые строки кода - C++
Тему понял, а вот логику программы не понимаю. Буду признателен, если подробно разъясните. Непонятные моменты я обозначил в комментариях в...

Многомерный массив. Дублирование значения первого элемента строки в значении последнего элемента предыдущей - C++
Здравствуйте уважаемые форумчане! Решил я сегодня разобраться с многомерными массивами! И немного разочаровался в своих результатах....

Двумерный динамический массив (Получить векторный столбец, элементы которого являются наименьшим по модулю столбцов исходной матрицы) - C++
Подскажите, что делаю не так. Задание такое: Дана матрица A(n,m). Получить векторный столбец, элементы которого являются наименьшим по...

4
Vourhey
Почетный модератор
6482 / 2256 / 123
Регистрация: 29.07.2006
Сообщений: 12,635
06.12.2012, 22:00 #2
matrix[0]
0
iTD
0 / 0 / 0
Регистрация: 14.03.2012
Сообщений: 29
06.12.2012, 22:06  [ТС] #3
Цитата Сообщение от Vourhey Посмотреть сообщение
matrix[0]
не понял, т.е. для того чтобы попать на начало массива, мне нужно записать в регистр edi адресс matrix[0] ?
C++
1
2
3
4
5
6
7
8
_asm
    {
        mov ebx, 0
        mov esi, 0
        mov edi, matrix[0]
        mov ebx, [edi][esi*4]
        mov max, ebx
    }
так тоже не получается, он выплевывает что то, но не то что нужно (например 324561 и тп)
0
Vourhey
Почетный модератор
6482 / 2256 / 123
Регистрация: 29.07.2006
Сообщений: 12,635
06.12.2012, 22:20 #4
Цитата Сообщение от iTD Посмотреть сообщение
мне нужно записать в регистр edi адресс matrix[0]
matrix[0] - это указатель. Значения указателя - это адрес. Поэтому тебе нужен не адрес matrix[0], а просто matrix[0].Смотри:
C++
1
2
3
4
5
6
7
    const int n = 3, m=3;
    int **matrix=new int* [n];
    for(int count=0; count < n; count++)
        matrix[count]=new int[m];
    matrix[0][0] = 666;
    std::cout<<std::hex<<matrix[0]<<std::endl;
    std::cout<<std::dec<<*matrix[0]<<std::endl;
И вывод:
0x94f030
666
Добавлено через 2 минуты
Можешь вот так написать, если хочешь:
C++
1
2
    std::cout<<std::hex<<*matrix<<std::endl;
    std::cout<<std::dec<<**matrix<<std::endl;
Одна фигня.
0
iTD
0 / 0 / 0
Регистрация: 14.03.2012
Сообщений: 29
06.12.2012, 22:26  [ТС] #5
буду пробовать
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.12.2012, 22:26
Привет! Вот еще темы с ответами:

Двумерный динамический массив. Все нечетные строки матрицы сдвинуть циклически на К элементов влево - C++
Помогите пожалуйста нужно нужно создать двумерный динамический массив и все нечетные строки матрицы сдвинуть циклически на К элементов...

Двумерный массив, вывод номера строки и столбца минимального элемента - C++
Помогите найти ошибку, программа не правильно выводит номер строки и номер столбца минимального элемента. #include &lt;stdio.h&gt; ...

Адрес первого элемента массива - C++
1. Написать функцию, принимающую в качестве параметра количество строк и столбцов в таблице умножения. Функция должна создать двумерный...

Для каждой строки найти номер первого отрицательного элемента и записать данные в новый массив - C++
Решите пожалуйста. Завтра надо сдать. Для каждой строки найти номер первого отрицательного элемента и записать данные в новый массив.


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

Или воспользуйтесь поиском по форуму:
5
Yandex
Объявления
06.12.2012, 22:26
Ответ Создать тему
Опции темы

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