Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
silken
0 / 0 / 0
Регистрация: 15.02.2015
Сообщений: 2
1

Разадресация указателя в массив из указателей

15.02.2015, 20:15. Просмотров 335. Ответов 3
Метки нет (Все метки)

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
float *A, **B;
    A = new float [n]; B = new float* [n];
    for (int i = 0; i < n; i++) {
        //*(A + i) = rand()%1000 / 100;
        *(A + i) = n - i;
        *(B + i) = &(*(A + i));
    }
    
    for (int i = 0; i < 10 - 1; i++) {
        for (int j = 0; j < 10 - i - 1; j++) {
            if (*B[j] > *B[j + 1]) {
 
                float *Temp = B[j + 1]; printf ("\n Temp = %f", *Temp);
                *B[j + 1] = *B[j];
                [B]B[j] = &(*Temp);[/B] // Вот именно в этой строчка работает неверно.
 
            }
        } 
    }
Не могу разобраться как пользоваться указателями.
Вообщем програ работает, НО
в закомментированной строчке должно происходить следующее:

"B" j - етому элементу должен быть присвоин адрес хранящийся в Темпе, но
как я ни шаманил, адрес не присваивался, и в итоге
в массиве указателей все элементы ссылались на первый элемент массива "А", т.е. 10.

Как мне присвоить B[j] элементу адрес элемента темп
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.02.2015, 20:15
Ответы с готовыми решениями:

Неправильная разадресация указателя на массив в цикле
Всем доброго времени суток! Столкнулся с такой проблемой: Есть массив a...

Возврат указателя на массив указателей
Доброго времени суток. Есть программа, где куча методов должны работать с одни...

Добавление нового указателя в конец массива указателей, удаление указанного элемента, добавление указателей
Здравствуйте. Помогите, пожалуйста, разобраться с одним большим заданием....

Массив указателей на массив строк и сортировка массива указателей
Добрый день. Поступил вопрос. Есть задача. У нас встроенный массив char...

Объяснить от чего зависит размер указателя и что такое арифметика указателей
Уважаемые программисты, возник вопрос. По умолчанию указатель любого типа может...

3
zss
Модератор
Эксперт С++
7480 / 6849 / 4324
Регистрация: 18.12.2011
Сообщений: 18,114
Завершенные тесты: 1
15.02.2015, 21:14 2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
float *A, **B;
    A = new float [n]; B = new float* [n];
    for (int i = 0; i < n; i++) 
    {
        A[i] = n - i;
        B[i] = A + i;
    }
    
    for (int i = 0; i < n - 1; i++) 
    {
        for (int j = 0; j < n - i - 1; j++) 
       {
            if (*B[j] > *B[j + 1]) 
           {
                 // меняем местами указатели:
                 float* Temp = B[j + 1]; 
                 printf ("\n Temp = %f", *Temp);
                 B[j + 1] = B[j];
                 B[j] = Temp;  
            }
        } 
    }
0
silken
0 / 0 / 0
Регистрация: 15.02.2015
Сообщений: 2
16.02.2015, 20:26  [ТС] 3
22 строка: возможно вы опечатались, наверное это имели ввиду:
C++
1
B[i] = &A[i];
.
К сожалению не работает, наверное что-то я упустил из ввиду, посмотрите пожалуйста:
Разадресация указателя в массив из указателей


P.s. Работоспособность функции echo проверена.
0
Tulosba
:)
Эксперт С++
4750 / 3244 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
16.02.2015, 23:24 4
Цитата Сообщение от silken Посмотреть сообщение
наверное это имели ввиду:
Для массива A[N] справедливо тождество:
C++
1
(A + i) == &A[i];
P.S. освобождения памяти, выделенной через new[] выполняется через вызов delete[]. Важно наличие квадратных скобок.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.02.2015, 23:24

Создать специфицированный шаблон функции, принимающей массив указателей на char и количество самих указателей
Задача: создать специфицированный шаблон функции, принимающей массив указателей...

Создать специализацию для шаблона, которая принимает массив указателей на строки и количество этих указателей
Нужно создать специализацию для шаблона, которая принимает массив указателей на...

Массив из указателей на масив из указателей на массив из int)
Доброго времени суток! Возникла проблема - как на C++ создать массив из...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

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