You can only assign data objects from the data areas of the ABAP program to a field symbol. When you assign a data object to a field symbol, the system checks at runtime to ensure that no data is lost due to the field symbol addressing memory outside the data area.
The data areas of an ABAP program are:
Field symbols cannot point to addresses outside these areas. If you assign data objects to a field symbol and point to addresses outside these areas, a runtime error occurs.
Certain system information, such as the control blocks of internal tables, is also stored in the DATA storage area. Therefore, despite the runtime checks, you may unintentionally overwrite some of these fields and cause subsequent errors (for example, destruction of the table header).
DATA: TEXT1(10), TEXT2(10), TEXT3(5).
DO 100 TIMES.
ASSIGN TEXT1+SY-INDEX(1) TO <FS>.
After starting DEMO, a runtime error occurs. The short dump message begins as follows:
The DATA memory area is at least 25 bytes wide (it can be expanded due to alignment of the data areas in memory). In one of the loop passes, the program tries to access an address outside this area. The termination message also contains the contents of the field SY-INDEX, which may be different from case to case. Up to the 24th loop pass, no error occurs. If you replace TEXT1 with TEXT2 in the ASSIGN statement, the error occurs ten loop passes earlier.