Seguramente puede almacenar cualquier cosa como datos, instrucciones incluidas, pero si podrá o no ejecutar esas instrucciones y de qué manera depende mucho del compilador y la plataforma. Tendrá que profundizar en los detalles de bajo nivel de ambos para hacerlo correctamente sin colgar o colgar el programa o el entorno (por ejemplo, un sistema operativo primitivo que carece de protección de las aplicaciones).
Here es un ejemplo de almacenamiento de la instrucción x86 BSWAP como datos en una matriz (no asignada dinámicamente, pero que en general no debería importar) y ejecutarla. El ejemplo realmente almacena como datos, no la única instrucción BSWAP, sino una rutina completa C-involable que se adhiere a la convención de llamadas obligatoria del compilador que rige cómo se pasan los parámetros y se devuelven los valores devueltos.
El ejemplo es una aplicación de Windows de 32 bits y como debe ejecutarse en Windows, también debe asegurarse de que la región que contiene las instrucciones esté marcada como legible y ejecutable (la primera se otorga por el hecho de que son en una matriz que puede leerse y escribirse y la segunda está garantizada llamando a la función VirtualProtect() para indicar al sistema operativo que marque la región como ejecutable, lo cual es necesario porque el sistema operativo intenta protegernos de la ejecución accidental de código que puede ser malicioso (por ejemplo, datos no confiables provenientes de Internet)).
+1 por la única respuesta en un mar de "No, mal, aléjate" que dice "Bueno, sí, en realidad". –
De acuerdo. JVM proporciona el mecanismo de carga .class en tiempo de ejecución en la pila y llama a su función de forma dinámica. Pero Aditya está pidiendo agregar funciones en montón específicamente en el lenguaje C – Alam