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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 29, средняя оценка - 4.90
ForEveR
В астрале
Эксперт С++
7983 / 4742 / 321
Регистрация: 24.06.2010
Сообщений: 10,545
Завершенные тесты: 3
#1

Определение типа через typedef - C++

28.08.2010, 05:25. Просмотров 4412. Ответов 4
Метки нет (Все метки)

То-ли я пересидел, то-ли я просто этого не знаю, но все же.
Через typedef определить
1) массив из 7 указателей на целые числа. Как не через тайпдеф знаю - int*arr[7]; А вот как через него - хз...
2) указатель на массив из 7 указателей на целые числа. Полагаю что не через тайпдеф это будет как-то так: int**arr[7];
3) массив из 8 массивов по 7 указателей на целые. Ступор. На ум приходит только int*arr[?][8][7] но что-то мне это крайне сомнительно.
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.08.2010, 05:25
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Определение типа через typedef (C++):

Переопределение типа(typedef) - C++
Не как не могу разобраться что такое StartDLL/Startup в данном случае typedef void (*Startup)(); Startup StartDll; ...

Как грамотно нтерпретировать ввод нового имени типа, введённого typedef - C++
Друзья! Дело в том, что вот такой вот код: typedef char (*char6) ; И он значит, что char6 есть указатель на строку из шести...

Как правильно пользоваться typedef для декларации типа указателя на функцию? - C++
Мне нужны будут функции, принимающие параметр-указатель на функции с одним и тем же списком параметров и возвращаемым типом. Как правильно...

Описание типов через typedef - C++
Возникла проблема с описанием типов в с++. Приведу сразу пример кода: struct t_digit { bool flag; *t_node next; }; ...

Функциональный тип через typedef - C++
Приветствую, нужна помощь в решении задачи: В файле заданы строки из 5-ти чисел: границы отрезка, точность, номер функции и номер...

Программа через структуру typedef struct - C++
Люди помогите если несложно с программой, задание таково: 1.С клавиатуры вводятся пункты структуры - Студент: Матрикул - номер...

4
Nameless One
Эксперт С++
5775 / 3425 / 255
Регистрация: 08.02.2010
Сообщений: 7,448
28.08.2010, 06:45 #2
Цитата Сообщение от Lavroff Посмотреть сообщение
То-ли я пересидел, то-ли я просто этого не знаю, но все же.
Через typedef определить
1) массив из 7 указателей на целые числа. Как не через тайпдеф знаю - int*arr[7]; А вот как через него - хз...
2) указатель на массив из 7 указателей на целые числа. Полагаю что не через тайпдеф это будет как-то так: int**arr[7];
3) массив из 8 массивов по 7 указателей на целые. Ступор. На ум приходит только int*arr[?][8][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
31
32
33
34
35
36
37
38
#include <iostream>
#include <cstdlib>
 
/* Константы использовал для удобства */
const size_t size1 = 7;
const size_t size2 = 8;
 
/* 1 */
typedef int * tArr1[size1];
 
/* 2 */
typedef int * (* tArr2)[size1];
 
/* 3 - Массив из 8 массивов... размер не указан, значит будет просто указателем */
typedef int * (* tArr3)[size2][size1];
 
int main()
{
    /* 1 */
    std::cout << "\t " << 1 << std::endl;
    tArr1 arr1;
    for(size_t i = 0; i < size1; ++i)
    {
        arr1[i] = new int (i);
        std::cout << *arr1[i] << std::endl;
    }
 
    /* 2 */
    std::cout << "\t" << 2 << std::endl;
    tArr2 arr2 = &arr1;
    for(size_t i = 0; i < size1; ++i)
        std::cout << *(*arr2)[i] << std::endl;
 
    /* Третий пример инициализировать как-то лень было ;)
     * думаю, сам принцип понятен
     */
    return EXIT_SUCCESS;
}
Вот эта тема тоже может быть полезна
2
accept
4825 / 3246 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
28.08.2010, 09:12 #3
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
C
1
2
3
4
5
6
7
8
9
typedef int *Base[7];
typedef Base *BasePtr;
typedef Base BaseArr[8];
 
...
 
    Base a;
    BasePtr b;
    BaseArr c;
3
ForEveR
В астрале
Эксперт С++
7983 / 4742 / 321
Регистрация: 24.06.2010
Сообщений: 10,545
Завершенные тесты: 3
28.08.2010, 14:07  [ТС] #4
Nameless One, Спасибо. Так и думал, что каким-то таким макаром. Спасибо
0
Mencey
147 / 94 / 7
Регистрация: 22.07.2010
Сообщений: 424
29.08.2010, 13:54 #5
Цитата Сообщение от Lavroff Посмотреть сообщение
1) массив из 7 указателей на целые числа. Как не через тайпдеф знаю - int*arr[7]; А вот как через него - хз...
2) указатель на массив из 7 указателей на целые числа. Полагаю что не через тайпдеф это будет как-то так: int**arr[7];
3) массив из 8 массивов по 7 указателей на целые. Ступор. На ум приходит только int*arr[?][8][7] но что-то мне это крайне сомнительно.
Можно из простых состовлять сложные:
1)
C++
1
2
typedef int *pint; // Указатель на целые числа
typedef pint p7int[7];  // Семь указателей на целые числа
1
29.08.2010, 13:54
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.08.2010, 13:54
Привет! Вот еще темы с ответами:

Указатель на шаблон класса через typedef - C++
Здравствуйте. Возникла следующая проблема: захотел определить указатель на класс с template при помощи typedef, но вываливает ошибку: ...

Как объявить указатель на массив через typedef и как инициализировать такой тип - C++
Как заставить заработать этот фрагмент кода? INT_L -- указатель на массив из 100 элементов типа char; Не получается в переменную C...

Определение типа! - C++
У меня такой вопрос. Как можно узнать какой тип вводится? Например так: int a; int b; cout &lt;&lt; &quot;Enter symbol: &quot;; cin &gt;&gt; a; ...

Определение типа окна - C++
Добрый день! А подскажите пжалста, перебираю контролы чужого окна и мне надо выбрать только поля ввода (Edit). По каким критериям их...


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

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

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