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

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

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

Показать сообщение отдельно
Сыроежка
Заблокирован
27.11.2011, 18:03
Цитата Сообщение от Lupus Посмотреть сообщение
Код прекрасно компилится и на Qt и на Visual Studio, просто я не знал как можно еще передать массив в шаблон. А если бы массив был заранее проинициализирован нулями, можно было каждый раз увеличивать указатель, до встречи не с нулем? Я ведь мог бы тогда узнать точный размер (с большой долью вероятности) массива?
Так и происходит работа с одномерными символьными массивами. Функция strlen как раз и основывается на предположении, что символьный массив заканчиваетя терминальным нулем. Но даже с символьными массивами возникают проблемы, если массив, например, двумерный! Как определить, какой встретившийся 0 задает конец массива? Представьте себе, что вы имеет массив указателей на символьные строки. Как определить его размерность по терминальному 0?! А что если следом за массивом объявляется некий другой указатель? Как узнать, тчто этот указатель не относится к массиву?
Поэтому есть два варианта в общем случае. Это либо передавать указатель на первый элемент массива и вместе с ним передавать размер массива, либо передавать массив по ссылке.
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru