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

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

Восстановить пароль Регистрация
 
SwEeTxD
-27 / 11 / 1
Регистрация: 11.06.2012
Сообщений: 175
23.06.2014, 15:35     Вернуть указатель на массив указателей #1
Всем привет!
Написал маленький код:

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?
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.06.2014, 15:35     Вернуть указатель на массив указателей
Посмотрите здесь:

Вернуть указатель на трехмерный массив C++
C++ Получить указатель на массив указателей
C++ указатель на массив указателей
Вернуть указатель на массив из функции C++
Массив указателей на указатель C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Denno
50 / 50 / 6
Регистрация: 21.10.2012
Сообщений: 185
Завершенные тесты: 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;
}
zss
Модератор
Эксперт С++
 Аватар для zss
5942 / 5547 / 1783
Регистрация: 18.12.2011
Сообщений: 14,154
Завершенные тесты: 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;
}
SwEeTxD
-27 / 11 / 1
Регистрация: 11.06.2012
Сообщений: 175
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;
}
Yandex
Объявления
24.06.2014, 01:18     Вернуть указатель на массив указателей
Ответ Создать тему
Опции темы

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