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

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

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

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

06.12.2012, 21:57. Просмотров 674. Ответов 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. мучаюсь весь день Со статическим двумерным массивом и динамическим одномерным все работает, т.е. получаю правильный адресс и достаю оттуда значение.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.12.2012, 21:57     Динамический двумерный массив (получить адрес первого элемента первой строки)
Посмотрите здесь:

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

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

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

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

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

Бинарное дерево (передать адрес первого (корневого) элемента дерева в метод) - C++
Добрый день! Такой вопрос: Реализован шаблонный класс - бинарное дерево. Создан метод прохождения по элементам с помощью рекурсии. Не...

Как найти количество элементов массива, зная лишь адрес первого элемента и тип? - C++
Где-то в коде объявлен массив, кол-во элементов неизвестно, имеется ссылочная переменная на этот массив и все, назовем ее (А), как узнать...

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

Двумерный динамический массив в функциях - C++
Хочу создать отдельно в каждой функции создание массива и показ массива. но в итоге при использовании второй функции вылазит разные числа...

Заполнить динамический двумерный массив - C++
Заполнить динамический двумерный массив рандомными числами от 5 до 15. И сделать рандомными строки от 1 до 50. Добавлено через 15...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Vourhey
Почетный модератор
6477 / 2252 / 123
Регистрация: 29.07.2006
Сообщений: 12,635
06.12.2012, 22:00     Динамический двумерный массив (получить адрес первого элемента первой строки) #2
matrix[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 и тп)
Vourhey
Почетный модератор
6477 / 2252 / 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;
Одна фигня.
iTD
0 / 0 / 0
Регистрация: 14.03.2012
Сообщений: 29
06.12.2012, 22:26  [ТС]     Динамический двумерный массив (получить адрес первого элемента первой строки) #5
буду пробовать
Yandex
Объявления
06.12.2012, 22:26     Динамический двумерный массив (получить адрес первого элемента первой строки)
Ответ Создать тему
Опции темы

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