Answer Posted / szeke
As i know pointers are only simple memory adresses stored in variables. There are many situation they can be used, not only passing parameters. APIs from C, dynamically allocated variables, structures.
A %TRIMR can be a pointer in the original field instead of building another instance of it. Working with orbital buffers, parsing them, break into separated fields, from another ILE language or module can be received and send by a number of pointers instead of copy the value.
Doing anything with a pointer value doesn't point to the correct location is a pointer error. All the data types represent pointers anyway, but they maintained by the compiler, not by the programmer. To forget freeing unused pointed memory areas is another type of error. The use of pointers can cause such errors like invalid data, or memory leaks, since the compiler has no idea what we store on that variable, it must believe we're right. In java, the compiler strictly checks an array out of bound pointer operation, in C++ i have the right to browse the whole memory from a simple a[2] defined array by adressing it as a[12345]. Also no expensive type checkings, so the performance is better.
I can erase a value, or don't even initialize it in the memory but the pointer will still exist and pointing into a non-defined value.
The instruction pointer is also a pointer, can be manipulated by GOTO jumps, or Subs, OOP programming languages are just abstract definitions over the same thing, basically every procedure will be called by its pointer in the memory, determined by compiler or the user, in compile time or run-time... It is called procedure pointer. To point into a variable instead of a PROC is another serious error...
So, what is the question exactly?
| Is This Answer Correct ? | 0 Yes | 0 No |
Post New Answer View All Answers
what is the purpose of ovrdta (override data) keyword?
what is the maximum number of subroutines allowed in rpg?
how to declare a constant variable in the freeformat?
how to run other job when one job is active?
what is the difference between udate and the system date?
define the purpose of the *bcat function?
all i need to know about cmpseqdat parameter in cmppfm, how it works and can we retrieve line sequence and date from the output?
how many printer files can be defined in f specs ?
Difference between NOPASS & OMIT?
how to develop some simple graphs (bar charts) using just html?
what is the necessary keyword for non-join logical file?
if dspatr(pc) and csrloc were specified for a format, which keyword would have priority?
what is the favicon.ico request that my site receives now and then?
how can I start a page in a new window?
writing an sql statement from selecting records from two files using single statement and nested select statement.