Penguin
Note: You are viewing an old revision of this page. View the current version.

C is probably the only language you can do this in (except maybe Forth). Other languages either have no way of doing this, or don't treat data and code differently. (Feel free to add examples for other languages here.)

Once you've got a pointer to your machine code (usually an array of bytes or ints), you need to cast it to the appropriate type and call it. Eg if you have a pointer to a function which takes a char *, you can call it like this
((int (*)(char *)) p)("hello, world");
The secret here is the parenthesis around the star. To declare a variable to hold the above, use this
int (*p)(char *);