Текущее время: Пн, июн 30 2025, 01:49

Часовой пояс: 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 часа


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

Сейчас этот форум просматривают: Google [Bot]


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

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