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

Структура-указатель-функция - C++

Восстановить пароль Регистрация
 
faradej
0 / 0 / 0
Регистрация: 25.04.2013
Сообщений: 67
14.05.2013, 21:12     Структура-указатель-функция #1
Приветы. Как в функцию затащить указатель на конкретный элемент структуры, чтоб можно было например установить значение по умолчанию в прототипе, как для аргумента функции? Гугл не помог к сожалению.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
metaluga145
243 / 244 / 20
Регистрация: 08.04.2013
Сообщений: 927
14.05.2013, 21:24     Структура-указатель-функция #2
faradej, так Вам надо элемент структуры передать в функцию или установить значения по умолчанию в шаблоне?
faradej
0 / 0 / 0
Регистрация: 25.04.2013
Сообщений: 67
14.05.2013, 21:33  [ТС]     Структура-указатель-функция #3
Передать указатель на элемента структуры в функцию + присвоить этому указателю значение по умолчанию там же.
metaluga145
243 / 244 / 20
Регистрация: 08.04.2013
Сообщений: 927
14.05.2013, 21:38     Структура-указатель-функция #4
C++
1
2
3
4
5
6
7
8
9
10
11
struct test
{
   int a;
};
void myFunc(int *a)
{
    a=10;
}
//---------------
test A;
myfunc(A.a);
Вы это хотели сделать?
faradej
0 / 0 / 0
Регистрация: 25.04.2013
Сообщений: 67
14.05.2013, 21:52  [ТС]     Структура-указатель-функция #5
Да. Благодарен. А не подскажете как массивный элемент передать?
metaluga145
243 / 244 / 20
Регистрация: 08.04.2013
Сообщений: 927
14.05.2013, 21:53     Структура-указатель-функция #6
faradej, точно так же. Только добавьте еще один параметр, в котором будете передавать количество элементов.
faradej
0 / 0 / 0
Регистрация: 25.04.2013
Сообщений: 67
15.05.2013, 01:41  [ТС]     Структура-указатель-функция #7
В вызове функции амперсанд конфеты.нейм подсвечивает о несовместимости параметров, без этого аргумента нормально все.
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
30
#include <iostream>
#include <cstdlib>
using namespace std;
const int arsize = 30;
struct CandyBar{
    char name[arsize];
    float wes;
    int kall;
};
CandyBar konfeta={
    "jgiyu", 
    55, 
    99
};
 
 
void joker(CandyBar & konfeta, char *name[], int arsize, float *wes, int *kall);
int main()
{
    joker(konfeta, &konfeta.name, arsize, &konfeta.wes, &konfeta.kall);
    system ("pause");
    return 0;
}
void joker(CandyBar & konfeta, char *name[], int arsize, float *wes, int *kall)
{
    *name[30] = "Tra La La";
    *wes = 888;
    *kall = 999;
    cout << konfeta.kall << endl << konfeta.name << endl << konfeta.wes << endl;
};
Добавлено через 18 минут
невозможно преобразовать параметр 2 из "char (*)[30]" в "char *[]

Добавлено через 3 часа 20 минут
В чем же моя ошибка?
stima
431 / 286 / 16
Регистрация: 22.03.2011
Сообщений: 932
Завершенные тесты: 1
15.05.2013, 02:12     Структура-указатель-функция #8
char[] == char * const;

C++
1
joker(konfeta, &konfeta.name, arsize, &konfeta.wes, konfeta.kall);
faradej
0 / 0 / 0
Регистрация: 25.04.2013
Сообщений: 67
15.05.2013, 02:47  [ТС]     Структура-указатель-функция #9
Я решил это с помощью динамического массива вместо обычного, он тоже ведь по сути указатель на char. Сейчас другая проблема, не могу присвоить аргументам функции параметры по умолчанию.

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
30
31
32
33
34
35
36
37
#include <iostream>
#include <cstdlib>
using namespace std;
const int arsize = 30;
char *name = new char[arsize];
struct CandyBar{
    char *name;
    float wes;
    int kall;
};
CandyBar konfeta={
    "jgiyu", 
    55, 
    99
};
void joker(CandyBar & konfeta, char *name[], float *wes, int *kall);
 
 
 
int main()
{
    joker(konfeta, &konfeta.name , &konfeta.wes, &konfeta.kall);
    cout << "vne jokera: " << konfeta.name;
    delete [] name;
    system ("pause");
    return 0;
}
 
 
 
void joker(CandyBar & konfeta, char *name[], float *wes, int *kall)
{
    *name = "Qqqq";
    *wes = 888;
    *kall = 999;
    cout << konfeta.kall << endl << konfeta.name << endl << konfeta.wes << endl;
};
Добавлено через 15 минут
С указателями такое вобще можно делать?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.05.2013, 03:12     Структура-указатель-функция
Еще ссылки по теме:

C++ Функция, возвращающая указатель
Структура и функция, возвращающая указатель на структуру C++
C++ Функция, возвращающая умный указатель
Объясните пожалуйста, в чем здесь дело(структура и указатель) C++
C++ Функция, возвращающая указатель

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

Или воспользуйтесь поиском по форуму:
stima
431 / 286 / 16
Регистрация: 22.03.2011
Сообщений: 932
Завершенные тесты: 1
15.05.2013, 03:12     Структура-указатель-функция #10
Может вы поначалу прочитаете про указатели?
Yandex
Объявления
15.05.2013, 03:12     Структура-указатель-функция
Ответ Создать тему
Опции темы

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