Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> параметры в функции 
:(
    Опции темы
Chameleon
Дата 5.12.2005, 00:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 18
Регистрация: 27.11.2005
Где: moscow

Репутация: нет
Всего: нет



немоглибы пояснит как правельно предовать в функцию параметры.
в часности интерисует указатель на структуру, чтоб он там изменялся smile
PM MAIL WWW ICQ   Вверх
DeadSoul
Дата 5.12.2005, 00:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник
Сообщений: 1217
Регистрация: 25.9.2005
Где: Москва

Репутация: 2
Всего: 11



Код

struct A
{
int r;
// ....
};

// вариант 1
void Foo( A* pA )
{
 pA->r = 12;
//....
}
// вариант 2
void Foo1( A& refA )
{
refA.r = 12;
//....
}

// using
A q;
Foo(&q);
Foo1(q);


Это сообщение отредактировал(а) DeadSoul - 5.12.2005, 00:58


--------------------
 Если Вы получили ответ на Ваш вопрос, то нажмите на "Вопрос решен". 

Бьем спамеров их же оружием. Пусть весь спам сыпется им
[email protected] 
PM   Вверх
Chameleon
Дата 5.12.2005, 11:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 18
Регистрация: 27.11.2005
Где: moscow

Репутация: нет
Всего: нет



а если у меня вот такяая вещь
Код

struct node{
int info;
node *next;
}
int add(node *l){//как тут правильно нужно передавать
node *r;
r=(node *)malloc(sizeof(node));
if(l==NULL)l=r;else l->next=r;
return 1;
}

int main(){
node *root=NULL;//как нужно правельно объявлять

}

хотелосбы чтобы после выхода из функции root изменялся, это все к вопосу о рекурсивном построение дерева или списка
PM MAIL WWW ICQ   Вверх
Neitron
Дата 5.12.2005, 11:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 580
Регистрация: 3.10.2005
Где: Москва

Репутация: 2
Всего: 5



Код
int add(node& *l)



--------------------
Хороший программист никогда ничего не делает хорошо с первого раза. Он понимает важность патчей.
Ⓘ ⓁⒾⓀⒺ ⓂⓄⓏⒾⓁⓁⒶ
PM MAIL   Вверх
DeadSoul
Дата 5.12.2005, 21:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник
Сообщений: 1217
Регистрация: 25.9.2005
Где: Москва

Репутация: 2
Всего: 11



Neitron, нет. У тебя указатель на ссылку. Такое бывает?

int add(node **)


--------------------
 Если Вы получили ответ на Ваш вопрос, то нажмите на "Вопрос решен". 

Бьем спамеров их же оружием. Пусть весь спам сыпется им
[email protected] 
PM   Вверх
Neitron
Дата 6.12.2005, 10:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 580
Регистрация: 3.10.2005
Где: Москва

Репутация: 2
Всего: 5



DeadSoul
Сылка на указатель....
А вот у тебя указатель на указатель...
А человек просил ссылку...

Спасибо, упустил...
Вот так надо.
Код

int add(node * &l)


Это сообщение отредактировал(а) Neitron - 6.12.2005, 10:36


--------------------
Хороший программист никогда ничего не делает хорошо с первого раза. Он понимает важность патчей.
Ⓘ ⓁⒾⓀⒺ ⓂⓄⓏⒾⓁⓁⒶ
PM MAIL   Вверх
Romikgy
Дата 6.12.2005, 13:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Любитель-программер
****


Профиль
Группа: Участник Клуба
Сообщений: 7326
Регистрация: 11.5.2005
Где: Porto Franco Odes sa

Репутация: 8
Всего: 146



Код

struct node{    
int info;    
node *next;    
}    
int add(node *l){//как тут правильно нужно передавать    
node *r;    
r=(node *)malloc(sizeof(node));    
if(l==NULL)
//l=r;
else 
r->next=l;
l=r;    
return 1;    
}    
int main(){    
node *root=NULL;//как нужно правельно объявлять
    
}

Мож так?
Цитата(Chameleon @ 5.12.2005, 11:02)
хотелосбы чтобы после выхода из функции root изменялся,

менялся на что?? словами объясни.


--------------------
Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. 
smile

PM   Вверх
S.A.P.
Дата 6.12.2005, 16:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2664
Регистрация: 11.6.2004

Репутация: 9
Всего: 71



Цитата(Chameleon @ 5.12.2005, 11:02)
struct node{
int info;
node *next;
}
int add(node *l){//как тут правильно нужно передавать
node *r;
r=(node *)malloc(sizeof(node));
if(l==NULL)l=r;else l->next=r;
return 1;
}
int main(){
node *root=NULL;//как нужно правельно объявлять
}


А что здесь не работет? Тут можно для удобства возвращать новую ноду
Код

node* add(node *l)
{
// бла бла бла
    return r;
}


Код

node *root;
root=add( NULL );
node *next = add( root );
node *next1 = add( next );

и так далее. Код особо не сморел.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0862 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.