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

Указатель на указатель - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ После последнего столбца, содержаще-го только отрицательные элементы, вставить столбец из нулей. http://www.cyberforum.ru/cpp-beginners/thread383869.html
Дана матрица размера M × N. После последнего столбца, содержаще-го только отрицательные элементы, вставить столбец из нулей. Если тре-буемых столбцов нет, то вывести матрицу без изменений. #include...
C++ Ограничение на ввод букв и символов Подскажите пожалуйста, как можно реализовать в консоле ограничение на ввод букв и символов, т.е. требуется чтобы пользователь мог вводить цифры и запятую, если он вводит остальные символы или буквы... http://www.cyberforum.ru/cpp-beginners/thread383852.html
C++ Запись даты в переменную
Народ, ктонибудь знает как записать в переменную сегодняшнюю дату (например чтобы было String str = "141111";) Идеально было бы чтобы запись происходила не с компьютера, а с сервера точного времени и...
Помогите написать алгоритм. C++
F(a)+2F(a+h)+2F(a+2h)+...+2F(a+(N-1)h)+F(a+Nh). При F(x)=(x^2+1)((cos^2)x).
C++ Возвращение значения в классе http://www.cyberforum.ru/cpp-beginners/thread383819.html
Подскажите, плиз, один нюанс в проге. Вот листинг (сильно в него можно и не вникать кроме кое-каких строк): #include <iostream> #include <cmath> using namespace std; class Matrix { ...
C++ Помогите обьяснить что означают эти команды Вот задача Дана целочисленная матрица размера M × N. Найти номер последней из ее строк, содержащих максимальное количество одинаковых элементов. #include <stdio.h> #include <stdlib.h> #include... подробнее

Показать сообщение отдельно
Сыроежка
Заблокирован
14.11.2011, 20:11
Цитата Сообщение от kl14_11 Посмотреть сообщение
Всем доброго времени!
Совсем недавно начал использовать технику двойных указателей типа Obj ** obj, поэтому путаюсь.
Для удобного заполнения списка из обычных указателей (Obj * obj) написал такую функцию:
C++
1
2
3
4
5
Act ** set(Act ** a, Act * n)
{
    *a = n;
    return &(*a)->next;
}
где next - одинарный указатель (Obj *) на следующий объект списка, Act - обычный элемент списка с кое какими данными.

Заполняю например вот так
C++
1
2
Act ** a = &begin;
a = set( a, new Act() );
, где begin - начало списка, a - указатель

В принципе, всё работает. Меня смущает что я возвращаю через return следующий элемент. Хочу написать эту функцию в таком виде:
C++
1
2
3
4
5
void set(Act ** a, Act * n)
{
    *a = n;
    a = (&(*a)->next);
}
, чтобы результат сам по ссылке присваивался, но чёто не катит. Помогите как нужно правильно эту функцию переделать, интересуюсь больше для собственного развития, чтоб механизм понять.
C++
1
2
Act ** a = &begin;
set( a, new Act() ); //вместо a = set( a, new Act() );
.
Спасибо.
Если я вас правильно понял, вы хотите, чтобы Act **a передавался через параметры и при этом его измененное значение было известно в вызывающей функции. Тогда вам еще нужно ввести один уровень косвенности и объявить

C++
1
2
3
4
5
void set(Act ***a, Act * n)
{
    **a = n;
    *a = (&(**a)->next);
}
Правда, я не проверял, но скорей всего должно работать.
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.