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

Возможно, ли создать какой либо массив без определение его типа? - C++

Восстановить пароль Регистрация
 
Altair42
0 / 0 / 0
Регистрация: 28.06.2013
Сообщений: 322
22.05.2014, 13:18     Возможно, ли создать какой либо массив без определение его типа? #1
Помогите понят задание. Не могу понять что имеется введу.

Задача:
Пишите программу так чтобы она отображала содержимое массива без использование определение типа указателя во внешнем цикле.

Я не могу понят, каким образом можно отображать содержание массива без определение типа указателя. Указатель на нулевой элемент и есть название массива. Как вообще возможно создать какой либо массив без определение его типа? Может я не так понял задачу. Напишу все как есть в книге.

C++
1
2
3
4
5
typedef int int_array[4];
int_array *ip = ia;
for(int_array *p = ia; p != ia + 3; ++p)
for(int *q = *p; q != *p +4; ++q)
cout <<*q<<endl;
Эту программу поазал как пример в теле текста (стр 167 Липпман)
Задача: Перепишите программу так, чтобы она отобрaжала содержимое массива ia без использование определение типа для указателя во внешнем цикле.

Может автор имеет введу определение типа int_array?
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.05.2014, 13:18     Возможно, ли создать какой либо массив без определение его типа?
Посмотрите здесь:

Определение типа процессора, в какой версии запускать лучше? C++
C++ Возможно ли через какой-либо скрипт(Command)или Run выполнить заготовленные мною операции?
C++ Массив типа char без ограничения
Возможно ли создать массив неизвестной заранее размерности? C++
C++ Рассчитать число столбцов в которых какой либо эл. делится без остатка на другой
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Tulosba
:)
Эксперт С++
4378 / 3221 / 297
Регистрация: 19.02.2013
Сообщений: 9,044
22.05.2014, 13:52     Возможно, ли создать какой либо массив без определение его типа? #2
Цитата Сообщение от Altair42 Посмотреть сообщение
Может автор имеет введу определение типа int_array?
Да. Именно так. Убрать typedef и получить эквивалентный код.
Керра
Модератор
 Аватар для Керра
1270 / 438 / 45
Регистрация: 24.08.2011
Сообщений: 2,123
22.05.2014, 13:53     Возможно, ли создать какой либо массив без определение его типа? #3
Скорее всего имеется в виду, что надо объявлять указатель типа void, а потом уже приводить его к нужному типу.
Что-то типа
C++
1
2
3
4
5
6
7
8
typedef int int_array[4];
int_array *ip = ia;
for(void *p = ia; p != ia + 3;)
{
   for(int *q = *p; q != *p +4; ++q)
      cout <<*q<<endl;
   (dynamic_cast<int_array*>(p))++;
}
Altair42
0 / 0 / 0
Регистрация: 28.06.2013
Сообщений: 322
22.05.2014, 13:59  [ТС]     Возможно, ли создать какой либо массив без определение его типа? #4
Керра, Tulosba, кому теперь верит?

Добавлено через 43 секунды
Первый вариант выгладит более норм
Tulosba
:)
Эксперт С++
4378 / 3221 / 297
Регистрация: 19.02.2013
Сообщений: 9,044
22.05.2014, 14:38     Возможно, ли создать какой либо массив без определение его типа? #5
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Цитата Сообщение от Altair42 Посмотреть сообщение
без использование определение типа для указателя во внешнем цикле.
внешний цикл видим?
C++
1
for(int_array *p = ia; p != ia + 3; ++p)
тип указателя видим?
C++
1
int_array *p
Ещё вопросы?

Решение под спойлером, если что
Кликните здесь для просмотра всего текста
C++
1
for( int (*p)[4] = ia; p != ia + 3; ++p)


Не по теме:

Цитата Сообщение от Керра Посмотреть сообщение
C++
1
(dynamic_cast<int_array*>(p))
dynamic_cast из void* ? однако. Вообще-то dynamic_cast только для полиморфных типов предназначен.

Yandex
Объявления
22.05.2014, 14:38     Возможно, ли создать какой либо массив без определение его типа?
Ответ Создать тему
Опции темы

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