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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
SwEeTxD
-27 / 11 / 1
Регистрация: 11.06.2012
Сообщений: 179
#1

Вернуть указатель на массив указателей - C++

23.06.2014, 15:35. Просмотров 279. Ответов 3
Метки нет (Все метки)

Всем привет!
Написал маленький код:

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
int WHAT();
 
int main()
{
 
cout<<WHAT();
 
 
system("pause >> void");
return 0;
}
 
int WHAT()
{
//допустим это год число месяц
int year = 2014;
int month = 6;
int day = 23;
//делаем массив указателей
int *A[] = {&year,&month,&day};
 
int **p = A;  //указатель на массив указателей
return **p;
}
Нужно вернуть указатель на массив указателей, но у меня вдруг появился вопрос:

если мы пишем так
C++
1
return **p;
мы получаем 2014, **(p+1) будет 6 и т.д., это понятно,
но как мне вернуть что бы было 2014623, не могу же я написать так :
C++
1
return **(p),**(p+1),**(p+2);
так как будет выводится самое правое.(приоритеты операций).
А как же тогда мне вернуть 2014623?
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.06.2014, 15:35
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Вернуть указатель на массив указателей (C++):

Вернуть указатель на массив указателей - C++
Ребята помогите, пожалуйста! есть функция, которая возвращает указатель на массив указаетелей, но выходит ошибка. Ниже приведен значимый...

Массив указателей на указатель - C++
Помогите, пожалуйста. У нас есть объявление int **m6; Нужно представить и нарисовать, как данный массив 10 указателей на указатель,...

Указатель на массив указателей - C++
Доброго времени суток. Имеется класс Kino, содержащий в себе некоторые поля данных и методы к ним. Другой же класс, класс KinoMassiv,...

указатель на массив указателей - C++
помогите разобраться, передаю в функцию update_table массив указателей на фигуры, для каждой из которых должна вызываться add_to_table....

Получить указатель на массив указателей - C++
Есть массив инициализированных указателей: Result* res; for (int i=0;i&lt;100; i++) { res=new Result(); } Подскажите...

Указатель на двумерный массив указателей - C++
char* err = {{&quot;abc&quot;}, {&quot;def&quot;}}; char ***ptr; ptr = (char ***)err; printf(&quot;%s, %s&quot;, *err + 2, *ptr + 2);Добрый день всем, есть...

3
Denno
54 / 57 / 9
Регистрация: 21.10.2012
Сообщений: 214
Завершенные тесты: 3
23.06.2014, 16:02 #2
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
#include <string>
#include <cstdio>
#include <cstdlib>
 
int WHAT();
 
int main()
{
    std::cout << WHAT();
 
    system("pause >> void");
    return 0;
}
 
 
 
int WHAT()
{
    //допустим это год число месяц
    int year = 2014;
    int month = 6;
    int day = 23;
    //делаем массив указателей
    int *A[] = { &year, &month, &day };
 
    int **p = A;  //указатель на массив указателей
 
    char buf[20];
    _snprintf_s(buf, 20, "%04d%02d%02d", *p[0], *p[1], *p[2]);
 
    int n = atoi((char*)buf);
 
    return n;
}
1
zss
Модератор
Эксперт С++
6484 / 6047 / 1985
Регистрация: 18.12.2011
Сообщений: 15,680
Завершенные тесты: 1
23.06.2014, 16:09 #3
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
int* WHAT();
 
int main()
{
    int* px=WHAT();
    cout<<px[0]<<"/"<<px[1]<<"/"<<px[2]<<endl;
    delete[] px;
    system("pause >> void");
    return 0;
}
int* WHAT()
{
    int date=new int[3];
    date[0]=2014;
    date[1]= 6;
    date[2]= 23;
    return date;
}
1
SwEeTxD
-27 / 11 / 1
Регистрация: 11.06.2012
Сообщений: 179
24.06.2014, 01:18  [ТС] #4
Большое всем спасибо!

Буду практиковаться дальше!

Добавлено через 9 часов 6 минут
Все таки решил как надо:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
int *(*WHAT())[]
{
//допустим дата
int A = 2014;
int B = 23;
int C = 6;
 
int *arr[] = {&A,&B,&C};
int *(*res)[] = &arr;
return res;
}
 
 
int main()
{
int *(*arrr)[] = WHAT();
 
cout<<*(*arrr)[0]<<"/"<<*(*arrr)[1]<<"/"<<*(*arrr)[2];
system("pause >> void");
return 0;
}
0
24.06.2014, 01:18
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.06.2014, 01:18
Привет! Вот еще темы с ответами:

Вернуть указатель на массив из функции - C++
Дан массив из 20 элементов, который заполняется в функции, причем заполнение можно прервать. Функция должна вернуть ссылку на следующий...

Вернуть указатель на новый массив - C++
Всем добрый вечер. Помогите пожалуйста разобраться. В задаче необходимо написать функцию, которая добавляет в двумерный динамический...

Вернуть указатель на трехмерный массив - C++
Подскажите пжл как вернуть указатель из моей функии на трехмерный массив. double dif(double kof,double lp,double step){ double ...

Указатель на массив указателей на объекты, передать в метод объекта - C++
Здравствуйте! Нужно решить задачу, есть такой класс. class MyClsDisk { public: void...


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

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

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