タグ

2012年1月7日のブックマーク (15件)

  • 映像奮闘記

  • C/C++でポインタによる多次元配列を連続したメモリ領域に作成する

    下記のようにC/C++の配列で多次元配列を作れば連続したメモリ領域となるが、動的に大きさを変えられないし、関数に渡したりするのも大変だ。 int a[N][M]; 一方、ポインタを使った下記の方法だと確保したメモリ領域が不連続となる。 int **a = new int*[N]; for (int i = 0; i < N; i++) a[i] = new int[M]; 動的にメモリ確保して連続したメモリ領域にしたい場合、以下のようにすれば良い。 int **a = new int*[N]; a[0] = new int[N * M]; for (int i = 1; i < N; i++) a[i] = a[0] + i * M; ここで、a[i][j] と (*a)[i*M+j] は同じ値を示す。 二次元配列、三次元配列を扱った実際のコード(C/C++)を最後に載せておく。 Cバージ

  • BohYoh.com【著書】C言語によるアルゴリズムとデータ構造《演習問題6-8の解答》

  • メモリ領域のデータをコピーする – C言語入門講座

    memcpy関数とmemmove関数は、メモリ領域のデータを指定された長さだけコピーします。memcpy関数とmemmove関数の相違は、memcpy関数はコピー元の領域とコピー先の領域が重なってはいけないのに対して、memmove関数は重なっていてもよいということです。 #include <string.h> void *memcpy(void *dest, const void *src, size_t n); void *memmove(void *dest, const void *src, size_t n); *destはコピー先の先頭アドレスを指定します。 *srcはコピー元の先頭アドレスを指定します。 nはコピーする長さをバイト単位で指定します。 戻り値として、第1引数*destのアドレスを返します。 次の例題プログラムは、ファイル中の’&’、'<‘、’>’、’\’記号を、

  • Super Technique 講座~ガベージコレクタ

    「ガベージコレクション(略してGC)」は、メモリ管理の大技である。主として Lisp インタプリタで利用したセルを再利用するために使われて来たが、最近のオブジェクト指向言語でも、Smalltalk-80 に始まり、Java や Eiffel でプログラマが作成したインスタンスについて、明示的にデストラクタを起動しなくても済むように利用されている。このようにプログラミング言語とその環境にとって、大変重要な機能なのだが、別に自分が書くアプリケーションで使っていけないわけではない。また、一度自分で実装してみると、ガベージコレクタを備えた言語を使う場合でも、その動作に対する洞察が効くというものである。ここでは、メモリ管理の技との関連でガベージコレクタについて考察してみよう。 realloc モデル 改良された malloc & free モデル 汎用的な malloc & free モデル 参照カ

    bluele
    bluele 2012/01/07
  • github 超入門 - glasses factory

    ここ1年くらい、僕はソースコードなどを github で公開しています。 つい先日まで書いていた連載記事 GAE for Flasher のサンプルソースコードや、 東京てら子で発表したデモ、今まで作ったライブラリや便利クラスなど なんでもかんでも github で公開しています。 しかし、プログラムに慣れた人ならともかく、これから AS3 をガシガシ勉強していこう! といった方や、AS3 自体はガシガシかけても基的に SVN 等バージョン管理システムを 使わない方にとっては github 自体がやはり少し敷居が高いイメージがあるという話を聞きました。 GAE for Flasher の記事自体、ある程度 AS3 に関する知識のある人を想定していたとはいえ 流石に当たり前のように使い過ぎたかなと反省の意を込めて github 超入門( for Flasher ) を書く

  • 27.10. traceback — スタックトレースの表示または取得 — Python 2.7ja1 documentation

    27.10. traceback — スタックトレースの表示または取得¶ このモジュールは Python プログラムのスタックトレースを抽出し、書式を整え、表示するための標準インターフェースを提供します。モジュールがスタックトレースを表示するとき、 Python インタープリタの動作を正確に模倣します。インタープリタの”ラッパー”の場合のように、プログラムの制御の元でスタックトレースを表示したいと思ったときに役に立ちます。 モジュールは traceback オブジェクトを使います — これは変数 sys.exc_traceback (非推奨)と sys.last_traceback に保存され、 sys.exc_info() から三番目の項目として返されるオブジェクト型です。 モジュールは次の関数を定義します: traceback.print_tb(traceback[, limit[,

  • Pythonの例外とその処理に関する覚え書き(概要、書式、後始末処理) - 試験運用中なLinux備忘録・旧記事

    以前Pythonの基的なことをまとめたとき、例外については参考URLのリンクを貼り付けただけだったので、この機会にまとめてみた。 (2014/11/12)リンク先を修正し、サンプルコードの内容もPython 3対応のものを追加し、文の記述も一部書き直している。 例外について 種類 基的な形 特定の例外に対して処理を行う場合 任意の例外に対して処理を行う場合 後始末の処理を含めた例外処理 例外について何かの操作を行うとき、何らかの原因によってそれが「うまくいかない」可能性を持っている場合がある。言語/環境によっては、そのときに行っていた処理を途中でやめて、失敗したことを環境側に知らせる仕組みがある。このとき、発生した「ある種の異常」(と定義されているもの)を例外といい、例外が起こったときにはそのままではプログラムは発生した例外の情報を出力しつつ終了してしまうが、例外が起こる可能性がある

    Pythonの例外とその処理に関する覚え書き(概要、書式、後始末処理) - 試験運用中なLinux備忘録・旧記事
  • urllib.URLopenerのエラーを詳しく検出する - Pythonを書く

    タイムアウトの設定についてはPython 2.6以降urllib.urlopenerのオプション引数でサポートされるようになりました。後ほど書き直します。 urllib.URLopenerはすべてのエラーをIOErrorで返します。except文はひとつで済むのですが、DNSのエラー、タイムアウト、URLの不正形式からHTTPサーバにおけるNotFound、認証要求、リダイレクトまで全部一緒に扱われてしまいます。エラーの内容によって処理を振り分けたい場合、error valueを取って調べることになります。 e.errno e.strerror e.args ============== ========== ========================================= 'url error' '...' ('url error', '...') 'socket er

    urllib.URLopenerのエラーを詳しく検出する - Pythonを書く
  • python urllib2でタイムアウトのハンドリング | Go for it!

    ここ数日blog.mitsukuni.org(このサイトのことです)の調子が悪い。httpdは立ち上がってるのに応答しないことがしばしばあるようで、Google Analyticsのpage viewが下方向に張り付いたままになっていた。 自作の死活監視プログラムを書いて置いて数分起きに実行しているのだが、どうもうまく機能していない模様。 ↓こんなの。 #!/usr/bin/env python import os import urllib2 url='http://blog.mitsukuni.org' try: urllib2.urlopen(url) except Exception, e: print 'Restart httpd cause hanged up' os.system('/etc/init.d/httpd restart') 実は、これだとソケット

  • Python でイベント指向のプログラミングを実現する

    ほかのプログラミング言語でちょっとよさげなアイデアが採用されているのを見ると、それを自分のお気に入りの言語でも実現したくなってくるものらしく、C# のイベント機構を Python でも実現できないかと考える人は少なくないようです。「c# event python」といったキーワードで検索すると、同様のことを試みたページが少なからず見つかります。以下もそれらと同様の試みのひとつですが、デスクリプタという Python の興味深い仕組みを使い、少し進んだ実装を目指します。 前提 シンプルな実装 より使いやすく 使い方 実装 解説 むすび 参考文献 Python でのイベント機構実装について デスクリプタについて 事項 前提 C# のイベントの概念とそれがどう素敵なのかについての説明は省略します。 シンプルな実装 イベントをクラスとしてシンプルに実装すると、次のようなものになるでしょう。 最後の

  • Good night, Posterous

    bluele
    bluele 2012/01/07
  • GitHub - gorakhargosh/watchdog: Python library and shell utilities to monitor filesystem events.

    You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert

    GitHub - gorakhargosh/watchdog: Python library and shell utilities to monitor filesystem events.
  • ソートと探索(ヒープソート1)

    木構造による探索 以前、データ構造を学習した際に「木構造」を取り上げました。 「木」は、もともと枝分かれしたものを表現するのに適したデータ構造です。 節にデータを置くことにすれば根から葉に向かってたどる経路が探索のプロセスを表していると考えることができます。 ですから、節に置いたデータと探索キーを比較しながら、根から葉に向かってたどっていけば、探索が実現できるはずです。 木構造を利用した探索アルゴリズムには、二分探索木 、AVL木、B木など数多くありますが、ここでは最も基となる二分探索木について勉強しましょう。 二分探索木とは 木構造の一種として、二分木というものがありましたが、これをもとにして探索を行うのが 二分探索木(binary search tree)です。 二分探索木とは、二分木の各節に要素(データ)を持たせたもので、任意の節xについて、左部分木に含まれる要素は節xよりも

  • サービス終了のお知らせ

    サービス終了のお知らせ いつもYahoo! JAPANのサービスをご利用いただき誠にありがとうございます。 お客様がアクセスされたサービスは日までにサービスを終了いたしました。 今後ともYahoo! JAPANのサービスをご愛顧くださいますよう、よろしくお願いいたします。