Поиск:

Ответ в темуСоздание новой темы Создание опроса
> [General] Указатель на адрес участка памяти, Можно ли реализовать в Fortran'е? 
V
    Опции темы
OlikFleur
Дата 10.2.2011, 23:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 23
Регистрация: 23.10.2009

Репутация: нет
Всего: нет



Подскажите, пожалуйста, есть ли в Fortran указатель на адрес участка памяти? 

Поясню, что я пытаюсь сделать: у меня есть пара двумерных массивов (где-то 130 тыс элементов в каждом) и надо много раз передать данные из одного массива в другой и наоборот. Присвоение указателя на массив позволило бы сделать это очень быстро и не потребовало бы дополнительных ресурсов.

PM MAIL   Вверх
Фантом
Дата 11.2.2011, 01:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вы это прекратите!
***


Профиль
Группа: Участник Клуба
Сообщений: 1516
Регистрация: 23.3.2008

Репутация: 5
Всего: 49



Именно на участки памяти (в стиле, например, C) нет, но то, что Вам нужно, есть. Выглядит это примерно так:
Код

 real,dimension(:),pointer :: a                   ! Указатель на одномерный вещественный массив 
 real,dimension(0:1000),target :: a1,a2     !  Два одномерных вещественных массива, на которые можно ссылаться

 a => a1    ! Адрес a будет ссылаться на a1

 a(3)=a(2)+a(1)   ! После этого можно использовать a как "массив"

Из ограничений, которые могут показаться не совсем привычными, стоит отметить, что указатели в Фортране - это скорее "псевдонимы", арифметика указателей не поддерживается (поскольку компилятор имеет право ради оптимизации программы располагать "указуемые" данные в памяти произвольным образом). Указатель нельзя присваивать указателю - это будет воспринято как присваивание соответствующих данных (но можно написать a => b, где a и b - указатели, в этом случае a будет указывать на тот же объект, что и b, причем при дальнейшем пересвязывании b связанность a не поменяется, он будет указывать на старый объект). К тому же не стоит увлекаться атрибутом target без необходимости - это дает хотя и небольшие, но все же "накладные расходы".
PM   Вверх
OlikFleur
Дата 11.2.2011, 16:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 23
Регистрация: 23.10.2009

Репутация: нет
Всего: нет



Большое спасибо, да, это именно то, что я искала!
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Fortran | Следующая тема »


 




[ Время генерации скрипта: 0.0372 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.