カヤックのAdvent Calendar 9日目は @Gemmbu がお送りします。 iOS でも実行時に確保したメモリ上のコードが動作することはある界隈では有名ですが、 手元で試したことがある方はすくないのではと思います。 そこで実行時に確保したメモリ上に、与えられた数値に 1 加算して返す関数を実装し動作させてみましょう。 流れ 与えられた数値に 1 加算して返すコードを書く アライメントを意識してメモリを確保する 確保したメモリにコードを書き込む 確保したメモリに実行権限を付与する 確保したメモリを関数として実行する サンプルコード #include <unistd.h> #include <stdlib.h> #include <sys/mman.h> // 与えられた数値に 1 加算して返すコード書く // 以下は armv7s 用のコードであり、armv7 及び arm64 で