![]() |
Модераторы: Daevaorn |
![]() ![]() ![]() |
|
mrgloom |
|
||||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 829 Регистрация: 8.6.2011 Репутация: нет Всего: нет |
такое вот определение. непонятно как это работает и работает ли для статических и динамических массивов любого типа? непонятно, если такой трюк работает.
то зачем в функцию помимо указателя на массив передают еще и размер массива обычно? |
||||
|
|||||
xvr |
|
||||||||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 60 Всего: 223 |
Ну так там же есть:
Так что для динамических [любого типа] не работает.
Потому что 'этот трюк' работает только для оригинального определения массива, а для указателя, который дойдет до функции, это уже не работает. Это не работает даже для
|
||||||||
|
|||||||||
mrgloom |
|
||||||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 829 Регистрация: 8.6.2011 Репутация: нет Всего: нет |
это понятно.
а это нет.
так для каких работает? только для статических? и как вы это поняли из кода? что значит "оригинального определения массива"? т.е. только в его области видимости где он объявлен? |
||||||
|
|||||||
xvr |
|
||||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 60 Всего: 223 |
Это С++ реализация на шаблонах. Определяется прототип функции, принимающей ссылку на массив размера N (тип массива и N - параметры шаблона). Сама функция возвращает массив char'ов из N элементов. При вызове такой функции не будет работать автоматическое приведение массива в указатель на его первый элемент, а будет взят референс на массив целиком, т.к. именно так описан формальный параметр. Размер возвращаемого массива при этом равен количеству элементов в массиве - параметре.
Да. Или определен (через extern), но с явным указание длинны.
|
||||
|
|||||
![]() ![]() ![]() |
Правила форума "С++:Общие вопросы" | |
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |