ウィリアムのいたずらの、まちあるき、たべあるき

ウィリアムのいたずらが、街歩き、食べ物、音楽等の個人的見解を主に書くブログです(たま~にコンピューター関係も)

Cの配列は分かる人に、ポインタを教える(その1)

2007-10-12 18:27:43 | Weblog

 表題のとおりのお話。まずは、その1




■配列とポインタ

 いままで、配列を宣言することはやってきました。

char c[5] = {'a','b','c','d',0};

 など。

(char c[ ] = "abcd"; でも、もちろんOK)

 この配列の場合、大きさは宣言時にあらかじめ決まっていました。
 しかし、大きさが決まらないものを取りたい場合があります。

 このときに、ポインタを使い、領域を取って使います。




■ポインタによる領域の取り方

 では、同じく、c1というところに、5バイトぶんの大きさを取って、
 "abcd"とセットしてみましょう

 こんなかんじになります。

char *c1;

c1 = (char *)malloc(5);

strcpy(c1,"abcd");

 まずは、宣言です。
 変数名に、*を付けることでポインタになります。

 その後、mallocという関数で、(メモリ)領域をとります。
 mallocの引数が、取る大きさなので、ここをかえることによって、いくらでも取る領域の大きさをかえることが出来ます。

 たとえば、intの5個分の大きさをとり、それをi_lの中に入れてみましょう。
 intの大きさはsizeof(int)でわかりますので、

int *i_l;
i_l = (int *)malloc(sizeof(int) * 5 );

 となりまdす。mallocは、どんな型の領域でもとりますので、キャストしたほうがいいです。




■領域を取ったら、解放する

 なお、自分でmallocで領域を取ったら、必要なくなったところで、解放してください。
 free(c1);
 で領域を開放できます。
 (i_lの場合は、free(i_l); )




■まとめ

 決まった大きさのときは配列を使いましたが、決まっていない大きさ(領域)を取りたいときはポインタを使います。

ポインタを使うには、

char *c1;

c1 = (char *)malloc(5);

strcpy(c1,"abcd");

// 処理

free(c1);


のように、
1.まず宣言(変数に*をつけると、ポインタになる)

2.領域をmallocで確保

3.適当に処理して

4.処理が終了したらfreeで返す

という形になります。




 次回は、ポインタによるアクセスについてです


  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

SugarCRM Developer's Manualが来たんだけど。。。

2007-10-12 15:19:03 | SugarCRM

 やっとAmazonで買った、SugarCRM Developer's Manual(ISBN 978-1-847192-06-6)が来ましたよ。。

 で、いま、ぺらぺら。。って見ただけなんだけど。。。

 うん?思っているイメージと、違うぞ??

 普通、デベロッパーズマニュアルというと、システムを作る人用なので、ソースコードの書き方、Sugarでいうと、PHPファイルや設定ファイルの書き方のイメージだけど、その部分についての突っ込んだ話というよりは、ユーザーカスタマイズ、画面上でできるカスタマイズの話が中心で、ソースをいじる部分は、さらっとしか書いてない。

 たとえば、検索項目や編集項目にある、ドロップダウンメニューについてで言うと、
 ドロップダウンメニュー(コンボボックスのこと)の説明は、
 Using Studio to Create Drop-down Box ( P51) とManually Adding a Drop-down Box(P53)に書いてあるんだけど、ここで言っていることは、app_list_stringsにdomを追加することしか書いていない(これ自体は、全体共通の言語用ファイル、ja.lang.php,en_us.lang.phpに定義する)。

 たしかに、ここで定義することは必要なんだけど、手作業で編集するには、編集画面で出すために、EditView.phpとEditView.htmlの修正が必要で、その際、ある関数を知らないと、たいへんというか、うまく出ない。

 また、表示するときには、DetailView.htmlのテンプレートで、値をセットする。

 さらに、これ、編集をドロップダウンにしたら、検索もドロップダウンにしないといけない。
 そのためには最低2箇所の修正が必要で(サーチフィールドと、サーチフォーム)さらに、vardefs.phpの定義をenumにしないと、検索画面で、その値で出ない。

 。。。というようなことは、書いていないような気が。。。




 そして、Sugarの場合は、ドロップダウン、ポップアップ、サブパネルの3種類で、手入力でなく、値を選ぶ形で入力できるんだけど、それらについては、(上記のものが、言語ファイルで定義していて、DBでないところから気づくように)おおまかなスタイルガイドがある気がするけど、それについて書いていない。

 このスタイルガイドに違反したプログラムもかけるけど、ちょっと大変になってくる。




 さらに、サブパネルの定義に関する部分がない、チャートの話(ダッシュボードのカスタマイズ)はあ??と、開発上知りたい情報がない。。

 もちろん、サーチフォームのオプション設定によって、サブクエリーを隠しでやるとか、そーいうTIPSは載ってないしい。。

 はっきりいって、がっくし(-_-;)

 まー、このへんは、ウィリアムのいたずらが、このブログで書くしかないんですかねえ。。。
 (連載検討中)




 と、悪口ばかり書いたけど、カスタマイズで済む人にはいいかもしれない。
 また、SugarのER図が94ページからあるなど、有意義なデータもある

 。。。けど、DESCコマンドをたたけばわかる、
 106ページからのDBの中身はいらないよ(-_-;)

P.S 上記の内容はバージョン4.5の人のみです。
ほかのバージョンでは、違うファイルになっているんじゃないかなと予想されます。
その理由も、いつか、機会があったら書きますね。




  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

日経産業に載ってる東芝ソリューションの校正システムって

2007-10-12 12:41:41 | Weblog

たしか、東芝ソリューションが、何かの記事で、中国のオフシェア開発をするときに、自然言語処理を使って仕様のあいまいさをなくして、それで品質を上げたっていうことが書いてあったと思ったけど、その、「自然言語処理を使って仕様のあいまいさをなくして」いるソフトのコトかなあ。。

日経産業の10月12日1面の

「文脈解析する校正システム 東芝ソリューション
 日本語文書の誤訳防ぐ
 あいまい表現修正 まず中国向けソフト」

って・・・

 あの記事(新聞じゃなくって、オフシェアの記事のほう)読んだとき、ウィリアムのいたずらがやろうとしている、「品詞を分析して(うーたらこーたら、以下省略)仕様書をつくり、足りないところを確認する」っていうことをやるソフトかと思い、「やば、先やられた!」と思ったけど。。これなら、大丈夫そうだ(^^)v




  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

ニコニコ動画が機能を大幅に拡大、「ニコンドライフ構想」を発表

2007-10-12 02:17:27 | Weblog

ニコンドライフ?

あとで読み直したいので、記事のURLをメモメモ
ニコニコ動画が機能を大幅に拡大、「ニコンドライフ構想」を発表
http://japan.cnet.com/news/media/story/0,2000056023,20358356,00.htm


  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする