タグ

2011年10月29日のブックマーク (3件)

  • MALLOC

    時事ネタ いや、「今、fj.comp.lang.cが熱い!」という話は ちょっと前から聞き及んではいたのですが、 流量が尋常じゃないらしいので、 忙しさもあって読むのを控えていたんですけど、 先日、大筋を拾い読みしてみました。 確かに熱いですねえ。 いったん収束するかなあ、と思ったら、なんかまた泥沼の気配が(^^; fjを読んでない人のために説明すると(って、 私も普段はあんまり読んでないんですが)、 「malloc()で確保した領域は、必ずfree()で解放しなきゃいけないか?」という 話題でして、「exit()する時には、OSが解放してくれるんだから 別にfree()しなくてもいいじゃん」という主張と、 「いや、malloc()には常に対になるfree()があるべきだ」という主張があって、 議論を呼んでいたのでした。 んで、私がどう思うかなんですが、 私は面倒臭がりなので、free()

  • neue cc - JavaScriptエディタとしてのVisual Studioの使い方入門

    linq.jsってデバッグしにくいかも……。いや、やり方が分かればむしろやりやすいぐらい。という解説を動画で。HDなので文字が見えない場合はフルスクリーンなどなどでどうぞ。中身の見えないEnumerableは、デバッガで止めてウォッチウィンドウでToArrayすれば見えます。ウォッチウィンドウ内でメソッドチェーンを繋げて表示出来るというのは、ループが抽象化されているLinqならではの利点。sortしようが何しようが、immutableなので元シーケンスに影響を与えません。ラムダ式もどきでインタラクティブに条件を変えて確認出来たりするのも楽ちん。 ところで、JavaScript開発でもIDE無しは考えられません。デバッグというだけならFirebugもアリではありますが、入力補完や整形が可能な高機能エディタと密接に結びついている、という点でIDEに軍配があがるんじゃないかと私は思っています。動

  • C言語で文字列を簡単にかつ少し高速に操作する - ほんまの走り書き技術メモ

    C言語では文字列を連結していくと、メモリの再確保とかしなくてはならないのでとても面倒です。 さらに、strcatを利用すると、 以下のように文字列連結をした場合。 strcat(str1, str2); char *strcat(char *s1, const char *s2) { int len = strlen(s1); strcpy(s1 + len, s2); return s1; } となっている(はず)ため、連結を行う度に線形探索による文字数カウントが行われる。よって、連結を行う操作が多いと処理速度が大幅に低下する。特にオーダーがO(n)になるため、s1の文字数が多くなるとパフォーマンスは最悪だ。 そこで、常に文字数を保持しておくことでstrlenを省くことができ、連結のコストを抑えることができるのだ。 ソース MyString.h #ifndef __MY_STRING_H

    C言語で文字列を簡単にかつ少し高速に操作する - ほんまの走り書き技術メモ