タグ

Cに関するgomi_ningenのブックマーク (11)

  • The 67th Yokohama kernel reading party

    Explaining glibc malloc internals. slide: http://www.slideshare.net/kosaki55tea/glibc-malloc

    The 67th Yokohama kernel reading party
  • 線形リストを作ってみる その1 - white wheelsのメモ

    線形リストは、鎖のようにデータが連なったデータ構造をとります。 --[data]--[data]--[data]--[data]-- 線形リストの形には直線型、循環型があり、データを取り出せる方向として一方向、双方向の二種類に分かれます。 一方向の場合は前のノードを参照することができませんので、常に先頭からチェックしなければなりません。 双方向なら前後のノードを知っているため、どのノードからでも簡単にアクセスすることができます。 C++で双方向・循環型の線形リストを実装してみます。各ノードはint型を保持するとしましょう。 ノードクラスの実装 まずはデータを持っているノードクラスを定義します。 ノードクラスが保持する情報は,前後のノードのアドレスとデータそのものになります。 Node.h #ifndef __Node_H #define __Node_H class Node { publ

    線形リストを作ってみる その1 - white wheelsのメモ
  • ゲームプログラミングのページ

    ゲームプログラミングのページへようこそ。 あなたは、30169(旧ページ)+ 人目の訪問者です。 旧・ゲームプログラミングのページ(http://hikari-hinomoto.hp.infoseek.co.jp/)は、 iswebのサービス終了に伴い、閉鎖されてしまいました。 このページは、XNA, Windows, DirectX, Android, Star, DoJa, BREW, GBA, NDSで ゲームを作成したい人向けに、PDF資料を公開しています。 古い資料が多いですが、なんらかの役に立つことを祈っています。 (一太郎で作っていますので、申し訳ないのですが、すべてPDFとなっています) XNA Andorid GBA NDS ES Game Libraryでゲームプログラミング超入門 オブジェクト指向でつくるゲームコンポーネント C++ Windows    Direct

  • typedefの使用

    typedefの利用 typedef宣言 キーワードtypedef を用いて、既存のデータ型に新しい名前をつけることができる。 typedef 既存の型名 新しい型名; typedef で用いる構文は、「普通の変数宣言の先頭にtypedef と書けば、変数ではなく型の宣言となる。」と覚えておけばよい。 たとえば・・ int i; // これは、int型の変数 i の作成 typedef int INTEGER; // これは、INTEGER という新しい型のtypedef宣言 INTEGER foo; // 先にtypedefした INTEGER型の変数 foo の宣言 特に #define マクロとごっちゃになってしまう初心者は、ここでしっかりと覚えなおしておくこと。(typedef はマクロではないので,行末には必ずセミコロン(;) が必要.) typedef の利用法 1 -構造体に

  • CではArray[n]==n[Array]

    タイトルのようなことを『C/C++によるプログラミングスタイルブック』というで読んだのでメモ。 #include <stdio.h> int main(void) { int array[5] = {3, 5, 7, 9, 11}; if(array[3]==3[array]){ printf("array[3]:%d\n3[array]:%d\n", array[3], 3[array]); } } 以下、結果 というのも、添字式の”array[index]”は”*((array)+(index))”で評価されるかららしい。つまり、足し算だから逆から足しても同じ結果になるということだそうだ。 ちなみに、文字列は文字の配列なので以下のようなことも。 #include <stdio.h> int main(void) { printf("\"abcde\"[3]:%c\n", "abcde

  • プログラム初心者にC言語のポインタを不本意ながら教える羽目になったなら、こう教えると良いよ - 偏見プログラマの語り!

    僕がプログラミングに触れた当時は、プログラミングといえば「まず C 言語」でした。それから 10 年以上が経ちました。学校の授業や企業の研修では未だに C 言語を教えているところがあるようです。関数型プログラミング言語という波が来ている 2012 年にもなって未だに C 言語をやっているというのはまるで進歩が無く残念な気もしますが、比較的多くのプログラマに浸透している共通言語を最初に教えるというのは、一方では喜ばしい事だと解釈する事もできるのかもしれません*1。まぁとにかく、意にせよ不意にせよ現場で プログラム初心者に C 言語を教える羽目になった 人がたくさんいて、プログラム初心者なのに C 言語を学ばざるを得なくなった 若者がたくさんいるということです。 C 言語を教えるときに避けて通れないのがポインタで、プログラム初心者が C 言語を学ぶときにやたらとつまずく人が多いのがポインタ

    プログラム初心者にC言語のポインタを不本意ながら教える羽目になったなら、こう教えると良いよ - 偏見プログラマの語り!
  • 最大公約数を求める2つのアルゴリズムを書いてみた - sh-2の日記

    Cで多倍長整数演算のプログラムを書くのに熱中していた。既存のライブラリ*1を参考にしながら、自分でコードを書いてみている。勉強になるなあ。 アルゴリズムの参考にしたのは、クヌース先生の『The Art of Computer Programming Volume 2 Seminumerical Algorithms』。バイブルの名は伊達ではないようで。どれだけの知見を持っていたらこんなものが書けるのか……読み物としても結構面白い。 ただ、まだ乗算とか面倒な部分は実装していないので、格的に役に立つのはまだ先。Karatsuba法とかFFTを使った高速乗算法、うまく書けるかなあ。 互除法ともう一つ ここで話が変わる。TAOCPの他の部分を読んでいたら、最大公約数を求めるアルゴリズムが載っていた。有名なユークリッドの互除法の他に、もう一つ。今ここに書き残しておかないと忘れる自信があるので、忘れ

    最大公約数を求める2つのアルゴリズムを書いてみた - sh-2の日記
  • C言語入門

    目指せプログラマー!にようこそ。 当サイトはこちらに引っ越しました。 お手数をおかけしますが、上記サイトへご移動くださいませ。

  • 「ショートコーディング:パスカルの△」最終ランキング~上位5位のコード公開+Ozyさんの解説付き #shortcoding #codegolf - CodeIQ Blog

    CodeIQ中の人、millionsmileです。 お待ちかね、「ショートコーディング:パスカルの△」の 最終ランキングで上位5位までコード公開と、 出題者のOzyさんの解説です! この解説記事を読めば、次はあなたも神になれるかも!?です。 =============================== 解説と最短コード69バイト 最短コードを生むアルゴリズム パスカルの三角形を作る方法として一番簡単そうなのは、前の行の結果を単純に足し合わせて、次の行を生成する方法です。この方法での最短記録は、72バイトでした。十分短いのですが、配列アクセスで文字数が増えてしまうので、ややロスがありました。しかし、この方法の良い点は、単純な足し算しかしていません(途中掛け算をして32bitを超えることはありません)から、三角形のサイズがある程度大きくなっても対応できるということです。 今回は、三角形のサイ

    「ショートコーディング:パスカルの△」最終ランキング~上位5位のコード公開+Ozyさんの解説付き #shortcoding #codegolf - CodeIQ Blog
  • C言語講座>第7章 C言語のポインタ2 ~charポインタとchar配列~

    char ポインタ型は、他の型をポインタとして宣言した場合と、 使われ方がかなり違ってきます。この章では、ポインタの中でも特殊な存在である、 char ポインタに絞って説明していきます。 次の記述を打ち込んで、実行してみてください。 -- リスト18-- #include <stdio.h> #include <string.h> void main() { char array[7]; char *ptr; /** * char配列に、文字列をコピーする */ strcpy(array, "abcdef"); /** * char ポインタに、char配列の先頭のアドレスをコピーする */ ptr = &(array[0]);  (1) /** * char 配列、char ポインタをそれぞれ文字列形式で表示する */ printf(" array = %s\n ptr = %s\n",

  • 初心者のC言語

    since:2002.06.02 更新に手が回らずすみません。 ANSI規格でもいいよという方は 御覧ください。m(_ _)m

  • 1