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

Как присвоить указателю значение другого указателя внутри процедуры?

12.08.2016, 19:48. Показов 4150. Ответов 5
Метки нет (Все метки)

Подскажите пожалуйста. Вот я хочу одному указателю присвоить значение другого указателя внутри процедуры. Как это сделать ?
Вот мой код.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#include <bits/stdc++.h>
using namespace std;
 
struct test
{
    int x, y;
    test *l, *r;
    test(): l(NULL), r(NULL) {}
};
typedef test *ptrtest;
 
void s(ptrtest a, ptrtest b)
{
    a = b;
}
 
int main()
{  
    test u, v;
    u.x = 1;      v.x = 3;
    u.y = 2;      v.y = 4;
    ptrtest u1, v1;
    u1 = &u;
    v1 = &v;
    cout << u1 << "    " << v1 << "\n";
    s(&u, &v);
    cout << u1 << "    " << v1 << "\n";
    return 0;
}
Хотел передать по ссылке, но компилятор ругается.
0

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
12.08.2016, 19:48
Ответы с готовыми решениями:

Надо указателю на long int присвоить значение указателя на char
//есть указатель unsigned char* p_to_char = somthing; //и указатель unsigned long int*...

Приравнивание указателя одного типа к указателю другого
Есть структура : struct hci_inquiry_req { uint16_t dev_id; uint16_t flags; uint8_t lap;...

Присвоить указателю, значение
Я новичок в программирование, прошу не пинать. У меня есть указатель void *result; и есть...

Присвоить указателю значение
Подскажите, плз, как правильно присвоить указателю значение. Вставил строку (№14), а компилятор...

5
Don't worry, be happy
17173 / 10056 / 1935
Регистрация: 27.09.2012
Сообщений: 25,053
Записей в блоге: 1
12.08.2016, 19:49 2
В общем случае, для оформления кода,
выделите код и нажмите на кнопку соответствующего языка (см. изображение)
1
Падаван С++
445 / 259 / 89
Регистрация: 11.11.2014
Сообщений: 908
12.08.2016, 20:10 3
vovan1999, если вам нужны данные на которые ссылается указатель, то нужно его разыменовывать
C++
1
2
3
4
void s(ptrtest a, ptrtest b)
{
    *a = *b;
}
1
9 / 9 / 9
Регистрация: 04.08.2016
Сообщений: 24
12.08.2016, 20:20 4
Лучший ответ Сообщение было отмечено vovan1999 как решение

Решение

Судя по описанию автора и его коду, ему как раз разыменование не нужно.
Напишите, что за ошибка была при передаче по ссылке.
Ну и в любом случае, вы можете сделать передачу двойных указателей (указателей на ptrtest) и сделать присваивание их разыменованным значениям. Но версия с ссылками получше будет все-таки.
C++
1
2
3
4
ptrtest u1, v1;
u1 = &u;
v1 = &v;
cout << u1 << "    " << v1 << "\n";
Вы здесь хотите вывести адрес v?
1
183 / 181 / 66
Регистрация: 15.02.2015
Сообщений: 515
12.08.2016, 20:41 5
C++
1
2
3
4
5
6
7
8
9
10
void s(ptrtest& a, ptrtest& b)
{
    a = b;
}
 
/*C style*/
void s(ptrtest* a, ptrtest* b)
{
    *a = *b;
}
1
Падаван С++
445 / 259 / 89
Регистрация: 11.11.2014
Сообщений: 908
12.08.2016, 20:44 6
Operok, не забывайте что
C++
1
typedef test *ptrtest;
а нет, извините перепутал
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
12.08.2016, 20:44

Указателю void присвоить значение
Добавляю в TreeView узлы для дерева и там есть такое поле, как Data. Оно имеет тип void *. Я хочу в...

Не получается присвоить значение указателю на функцию
В строке 26 говорит, что не может конвертировать тип. Что неправильно? #include &quot;stdafx.h&quot;...

Присвоить некоторое значение нетипизированному указателю
В общем нужно некоторый массив байт записать по адресу в памяти. Делаю так: GetMem(p,...

Присвоить указателю значение, пример из интернета
Добрый вечер. В интернете находил парочку таких примеров: 1.) int *x; cout&lt;&lt;*x; *x=100; ...


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

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

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