Текущее время: Вт, июл 01 2025, 08:42

Часовой пояс: UTC + 3 часа


Правила форума


ВНИМАНИЕ!

Вопросы по SAP Query и Quick View - сюда



Начать новую тему Ответить на тему  [ Сообщений: 12 ] 
Автор Сообщение
 Заголовок сообщения: Exists pointers in ABAP?
СообщениеДобавлено: Чт, янв 12 2006, 11:46 
Менеджер
Менеджер

Зарегистрирован:
Чт, янв 20 2005, 08:34
Сообщения: 573
Пол: Мужской
In ABAP, there is nothing that corresponds exactly to pointers, that is, variables that contain a memory address and can also be used without the content operator.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, янв 12 2006, 11:57 
Директор
Директор

Зарегистрирован:
Пт, окт 07 2005, 09:10
Сообщения: 752
Откуда: 4.6C
Пол: Мужской
See help on FIELD-SYMBOLS


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, янв 12 2006, 11:59 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Сб, сен 25 2004, 16:30
Сообщения: 1368
Откуда: Москва
Пол: Мужской
Certainly there are pointers in ABAP. Why field-symbols cannot be called pointers? Also there are data references. Though there is no arithmetic address operations.

_________________
С уважением, Сергей Королев


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, янв 12 2006, 13:11 
Менеджер
Менеджер

Зарегистрирован:
Чт, янв 20 2005, 08:34
Сообщения: 573
Пол: Мужской
А вот каким образом получить смещение в памяти между двумя символьными полями?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, янв 12 2006, 14:30 
Гость
Интересно, для каких задач прикладного программирования это может быть нужно? :shock:


Принять этот ответ
Вернуться к началу
  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, янв 12 2006, 16:11 
Гость
Sergo написал:
А вот каким образом получить смещение в памяти между двумя символьными полями?


даже если вы её и узнаете (в привязке к аппл. серверу), эта величина может меняться в зависимости от момента времени (между разными запусками одного рабочего процесса внутри одного запуска задачи).

подломить р3 можно и более простым эксплойтом.


Принять этот ответ
Вернуться к началу
  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, янв 13 2006, 08:08 
Менеджер
Менеджер

Зарегистрирован:
Чт, янв 20 2005, 08:34
Сообщения: 573
Пол: Мужской
Цитата:
Интересно, для каких задач прикладного программирования это может быть нужно?


Хотел вот выяснить, символьные поля - указатели (подобные в С), или нет.

В одних местах хелпа встречаю фразу, подобную:
Цитата:
In ABAP, there is nothing that corresponds exactly to pointers, that is, variables that contain a memory address and can also be used without the content operator.


В ответ мне пишут, что:
Цитата:
Certainly there are pointers in ABAP. Why field-symbols cannot be called pointers? Also there are data references. Though there is no arithmetic address operations.


Вот хотелось бы докапаться до истины.


А вот про:

Цитата:
подломить р3 можно и более простым эксплойтом.


никто речи не вел. Речь велась о существовании указателей в ABAP, подобно указателям в C.

Так вот в С можно узнать смещение между указателями. А вот в ABAP е никто так и не ответил каким образом это можно сделать. Значит символьные поля - НЕ есть указатели, подобные в С?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, янв 13 2006, 10:34 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Сб, сен 25 2004, 16:30
Сообщения: 1368
Откуда: Москва
Пол: Мужской
Таких как в С - нету (и слава богу). Не вполне понимаю, какой практический смысл в вычислении смещения между указателями.

_________________
С уважением, Сергей Королев


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, янв 13 2006, 10:57 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Вт, авг 31 2004, 14:57
Сообщения: 5258
Откуда: Ростов невеликий
Пол: Мужской
Sergo написал:
Цитата:
Так вот в С можно узнать смещение между указателями. А вот в ABAP е никто так и не ответил каким образом это можно сделать. Значит символьные поля - НЕ есть указатели, подобные в С?

Не есть. Abap - язык более высокого уровня. Хотя сам он, ИМХО, написан на "С".


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, янв 13 2006, 12:53 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Ср, май 04 2005, 16:29
Сообщения: 687
Откуда: Нижневартовск->Москва
Пол: Мужской
Code:
data:
  a,
  gap(100),
  b.

data:
  ptr_a pointer,
  ptr_b pointer.

field-symbols:
  <a>,
  <b>.

assign a to <a>.
assign b to <b>.

system-call pointer <a> to ptr_a.
system-call pointer <b> to ptr_b.

data: delta type i.
delta = ptr_b(4) - ptr_a(4).        " 4.6
* delta = ptr_b+4(4) - ptr_a+4(4).  " 4.7

write: delta.


Это, конечно, не совсем то, поскольку в нашем случае POINTER - это не адрес, а указание на системную область, положение в ней, данные о длине, ссылка на тип (положение в соответствующей типам сист.области) и прочее. Подобный код разумеется не имеет никакого практического смысла и "получить расстояние" между ссылками можно лишь в том случае, если данные лежет в одной системной области. То есть нельзя вычислить "расстояние" в памяти между, например, параметром функц. модуля и глобальной переменной.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн, янв 16 2006, 10:32 
Почетный гуру
Почетный гуру

Зарегистрирован:
Вт, авг 17 2004, 10:45
Сообщения: 550
Откуда: SAP_BASIS 640
Сергей Королев написал:
Certainly there are pointers in ABAP. Why field-symbols cannot be called pointers? Also there are data references. Though there is no arithmetic address operations.

А вот что пишет об этом SAP Help:
Цитата:
Field symbols are similar to dereferenced pointers in C (that is, pointers to which the content operator * is applied). However, the only real equivalent of pointers in ABAP, that is, variables that contain a memory address (reference) and that can be used without the contents operator, are reference variables in ABAP Objects.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: re
СообщениеДобавлено: Пн, янв 16 2006, 10:53 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Пт, сен 23 2005, 11:11
Сообщения: 963
похоже, что
field-symbol - обычный smartptr, обертка на указатель C,
для того чтобы можно было управлять поведением указателя,
и который ведет себя как ссылка в C (по знач.):
Code:
int A =0;
int& refA(A);
refA = 1;
printf("%d\n",A); // 1


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 12 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB