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

Определить размерность массива по указателю на него - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ проверить решение http://www.cyberforum.ru/cpp-beginners/thread392670.html
Даны вещественные массивы A S.Для каждого массива определить количество элементов предшествующих первому отрицательному элементу массива. #include <iostream.h> #include <iomanip.h> // прототипы функций void inputmas (int ,char); int schet (int); void outrez (int ,char ,int); void main() {
C++ В чем преймущество создания обьектов в куче? Знаю, что задаю глупый вопрос поэтому прошу матом не ругаться палками не бить. Я не понимаю в чем преимущества создания объектов и переменных в куче (кроме динамического распределения памяти). http://www.cyberforum.ru/cpp-beginners/thread392667.html
C++ Двумерный массив
1)Заполнить матрицу и вывести результат на экран 2)Заполнить матрицу и сохранить в 2 файла( текстовый file.txt и бинарный file.bin) 3)Прочитать матрицы из файлов и обе матрицы вывести на экран Размеры массива вводит пользователь в диапазоне от 4 до 15. Пользователь указывает и количество столбцов, и количество строк. В зад. 2 и 3 сохраняется и читается только размер, указанный пользователем....
C++ Библиотека fltk и неразрешенные внешние элементы
Здравствуйте. Уже не знаю, куда обратится, пишу сюда. Извиняюсь, если вопрос не новый, но думаю что не тривиальный. Вобщем читаю книгу Страуструпа "Programming: principles and practice using C++", там в главе 12 он предлагает скачать с сайта библиотеку fltk, и следующие 3,4 главы без неё не обойтись. Я скачал, построил, запустил, установил. Запустил код проверки библиотеки - вроде всё работает....
C++ Как правильно объявить fopen http://www.cyberforum.ru/cpp-beginners/thread392653.html
Доброго времени суток. наткнулся на некоторого рода проблемку. Не могу объявить fopen.. Описываю так как на MSDN написано , а компилятор ругается , мол смотрите объявление fopen; int main() { FILE * pFile; pFile = fopen ("myfile.txt","w"); if (pFile!=NULL) {
C++ Указать наименьшую длину числовой оси, содержащую заданные числа дана последовательность чисел а1,а2,...аn.указать наименьшую длину числовой оси, содержащую все эти числа. подробнее

Показать сообщение отдельно
Сыроежка
Заблокирован
27.11.2011, 05:27     Определить размерность массива по указателю на него
Цитата Сообщение от Lupus Посмотреть сообщение
Дано:
C++
1
2
template< typename T >
void info( T * x )
и
C++
1
2
3
4
5
    int a[4][2]; info( a );
    int b[4][4]; info( b );
    int c[1][4]; info( c );
    int d[4][1]; info( d );
    int e[1][1]; info( e );
Необходимо: в теле шаблона определить размерность массива.
Массивы НЕ инициализированы.

Собственно - можно ли как то различить массивы, поступающие в шаблон?
Или может можно передать массив не через указател, а как-то по другому?
Ваша шаблонная функция объявлена, как принимающая указатель. Указатель не имеет никакого представления о том, передаете ли вы указатель на первый элемент массива, или на одиночный объект. Поэтому, объявив таким образом функцию, вы не сможэете получить информацию о массиве, если таковой передаетя в функцию.
Более того, вы объевляете двумерный массив, а парметр у вас указан как указательна на объект. Поэтому ваш код вообще не должен компилироваться.
Вам следует изменить объявление вашей шаблонной функции и объявить параметр, как ссылку (возможно констатную ссылку, на массив. Например,


C++
1
2
template< typename T, size_t N, size_t M >
void info( T  ( &x )[M][N] );
Тогда внутри функции вы сможете выполнять операции с вашим массивом.
 
Текущее время: 10:55. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru