タグ

ブックマーク / qiita.com/mikecat_mixc (2)

  • C言語 (GCC) で配列の配置先を切り替えて実行可能にする - Qiita

    このようにデータへのポインタを関数ポインタに変換するのはC言語の規格には違反するみたいだけど、目をつぶってね… #include <stdio.h> unsigned char program[] = {0x89, 0xf8, 0x01, 0xf0, 0xc3}; int main(void) { int (*add)(int, int) = (void*)program; printf("%d\n", add(40, 2)); return 0; } しかし、これを実行するとエラーになってしまった。 yUZ7Mw - Online C Compiler & Debugging Tool - Ideone.com これは、メモリ上でデータを格納する領域とプログラムを格納する領域が分かれており、データを格納する領域にあるデータをプログラムとして実行しようとするとエラーとして落とす設定になって

    C言語 (GCC) で配列の配置先を切り替えて実行可能にする - Qiita
  • JavaScript でキューを実装して性能を比較してみた - Qiita

    JavaScript でキューを実装して性能を比較してみた。 今回は、以下の条件で実装を行った。 クラスとして実装する 1個のデータのエンキューとデキューを行うメソッドをそれぞれ実装する それ以外のメソッド (要素数、先頭を削除せずに取得など) は実装しない エラー処理 (空のときにデキューを試みるなど) は行わない なお、実装で出てくる # つきのメンバ変数はプライベートプロパティである。 方針・実装 配列のpush・shift 配列の末尾に要素を追加するメソッド push をエンキューとして用い、配列の先頭から要素を取り除いて返すメソッド shift をデキューとして用いる。 エンキューとデキューがともに1回メソッドを呼び出すだけで実現でき、シンプルな実装になる。 class QueueShift { #q = []; enqueue(value) { this.#q.push(val

    JavaScript でキューを実装して性能を比較してみた - Qiita
  • 1